package { /** * * Auteur: Vincent Helwig * Date: 30.09.2008 * Website: http://www.tsoin.com * Description: Away3D - Création d’un cube * **/ import away3d.cameras.Camera3D; import away3d.containers.ObjectContainer3D; import away3d.containers.Scene3D; import away3d.containers.View3D; import away3d.materials.WireColorMaterial; import away3d.primitives.Cube; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import net.hires.utils.Stats; [SWF(backgroundColor="#000000", frameRate="100", width="600", height="400")] public class Away3D_002 extends Sprite { private var scene:Scene3D; private var camera:Camera3D; private var view:View3D; private var objectContainer:ObjectContainer3D; private var cube:Cube; public function Away3D_002() { addEventListener(Event.ADDED_TO_STAGE, init); var __stats:Stats = new Stats(); __stats.width = 75; __stats.x = 525; addChild( __stats ); } private function init(event:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; setupScene(); stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } private function setupScene():void { scene = new Scene3D(); camera = new Camera3D({zoom: 10, focus: 50, x:0, y:0, z:-300}); view = new View3D({scene:scene, camera:camera}); view.x = stage.stageWidth / 2; view.y = stage.stageHeight / 2; addChild(view); cube = new Cube({ width:100, height: 100}); cube.material = new WireColorMaterial(0x000000, { wirecolor:0x789789}); scene.addChild( cube ); } private function onEnterFrame(event:Event):void { view.render(); } private function onMouseMove(event:Event):void { cube.rotationX = ( stage.mouseY * 180 ) / stage.stageHeight - 90; cube.rotationY = ( stage.mouseX * 180 ) / stage.stageWidth - 90; } } }