3dpv_basicTraining
♥0 |
Line 121 |
Modified 2010-10-25 17:21:58 |
MIT License
archived:2017-03-20 01:19:32
ActionScript3 source code
/**
* Copyright ushisantoasobu ( http://wonderfl.net/user/ushisantoasobu )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gdC3
*/
package {
import flash.media.Sound;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.view.*;
import org.papervision3d.view.layer.ViewportLayer;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.*;
import org.papervision3d.cameras.*;
import caurina.transitions.Tweener;
[SWF(backgroundColor=0x000000)]
public class FlashTest extends Sprite {
public var scene:Scene3D;
public var building:Cube;
public var ground:Cube;
public var viewport:Viewport3D;
public var renderer:BasicRenderEngine;
public var camera:Camera3D;
public var _btn:btn;
public var camera_pos:int = 0;
public function FlashTest() {
scene = new Scene3D();
camera = new Camera3D();
camera.x = 400;
camera.y = 180;
camera.z = -1000;
camera.focus = 100;
camera.zoom = 10;
viewport = new Viewport3D(465, 465);
this.addChild(viewport);
renderer = new BasicRenderEngine();
/*----*/
for(var i:int = 0; i < 36; i++){
var material:ColorMaterial = new ColorMaterial(0x00FF00, 0.5);
var materialList:MaterialsList = new MaterialsList();
materialList.addMaterial(material, "front");
materialList.addMaterial(material, "back");
materialList.addMaterial(material, "right");
materialList.addMaterial(material, "left");
materialList.addMaterial(material, "top");
materialList.addMaterial(material, "buttom");
building = new Cube(materialList, 100, 100, 200, 10, 10, 10);
building.x = i/6 * 200;
building.z = i%6 * 200;
scene.addChild(building);
}
/*----*/
var material:ColorMaterial = new ColorMaterial(0x333333, 0.8);
var materialList:MaterialsList = new MaterialsList();
materialList.addMaterial(material, "front");
materialList.addMaterial(material, "back");
materialList.addMaterial(material, "right");
materialList.addMaterial(material, "left");
materialList.addMaterial(material, "top");
materialList.addMaterial(material, "buttom");
ground = new Cube(materialList, 5000, 5000, 10, 100, 100, 10);
ground.x = -1000;
ground.z = -1000;
ground.y = 0;
ground.addChild(building);
/*----*/
stage.addEventListener(Event.ENTER_FRAME, drawPapervision3d);
aaa();
_btn = new btn();
_btn.addEventListener(MouseEvent.CLICK, btnEventHandler);
addChild(_btn);
}
private function drawPapervision3d(e:Event):void{
//plane.rotationY += 5;
renderer.renderScene(scene, camera, viewport);
}
private function aaa():void{
//var _viewportlayer:ViewportLayer = viewport.getChildLayer(plane);
//_viewportlayer.buttonMode = true;
//_viewportlayer.addEventListener(MouseEvent.CLICK, mouseEventHandler);
}
private function mouseEventHandler(e:MouseEvent):void{
//Tweener.addTween(plane, {time:1.0, rotationY:+360, scaleX:1.5, scaleY:1.5, transition:"easeInOutQuart"});
//Tweener.addTween(plane, {time:0.0, delay:1.0, rotationY:0});
}
private function btnEventHandler(e:MouseEvent):void{
if(camera_pos == 0){
camera.x = 600;
camera.y = 1200;
camera.z = -1200;
camera.rotationX = 45;
camera.rotationY = 0;
camera.rotationZ = 0;
camera.focus = 100;
camera.zoom = 10;
}
else if(camera_pos == 1){
camera.x = 0;
camera.y = 0;
camera.z = -1000;
camera.rotationX = 0;
camera.rotationY = 0;
camera.rotationZ = 0;
camera.focus = 100;
camera.zoom = 10;
}
else{
camera.x = 2400;
camera.y = 0;
camera.z = -200;
camera.rotationX = 0;
camera.rotationY = -45;
camera.rotationZ = 0;
camera.focus = 100;
camera.zoom = 20;
}
camera_pos ++;
if(camera_pos > 2){camera_pos = 0;}
}
}
}
import flash.display.Sprite;
class btn extends Sprite{
public function btn(){
this.graphics.beginFill(0x666666);
this.graphics.drawRect(20, 20, 40, 40);
this.graphics.endFill();
this.buttonMode = true;
}
}