package be.nascom.flash10_tests{ import be.nascom.flash.threeD.MouseRotator; import be.nascom.flash10_tests.widgets.CubeSideMaterial; import be.nascom.flash10_tests.widgets.MouseRotationTracer; import be.nascom.flash10_tests.widgets.SimpleCube; import be.nascom.flex.component.FlexSimpleTraceBox; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; public class graphic_player_10_cube_be_nascom_flash10_tests_CubeTestZsorting extends AbstractFP10Test{ protected var _cube:SimpleCube; protected var _mouse_rotator:MouseRotator; public function graphic_player_10_cube_be_nascom_flash10_tests_CubeTestZsorting(){ super(); FlexSimpleTraceBox.trace("graphic_player_10_cube_be_nascom_flash10_tests_CubeTestZsorting()"); } override public function run():void{ FlexSimpleTraceBox.trace("CubeTest.run()"); createCube(); startRotateCube(); root.transform.perspectiveProjection.projectionCenter = test_holder.localToGlobal(new Point(400,400)); } protected function createCube():void{ removeCube(); _cube=new SimpleCube(getMaterials()); _cube.x=400; _cube.y=300;//because the holder is at 100 this.test_holder.addChild(_cube); } protected function getMaterials():Array{ var materials:Array=new Array(6); var i:uint; for(i=0;i<6;i++){ materials[i]=new CubeSideMaterial(200,200,i); } return materials; } protected function rotateCube(e:Event):void{ //trace("CubeTest.rotateCube()"); _cube.rotate(_mouse_rotator.x_rotation_speed,_mouse_rotator.y_rotation_speed,_mouse_rotator.z_rotation_speed); } protected function startRotateCube():void{ trace("CubeTest.startRotateCube()"); _mouse_rotator=new MouseRotator(0,0,800,800,5); stage.addEventListener(MouseEvent.MOUSE_MOVE,_mouse_rotator.update); addEventListener(Event.ENTER_FRAME,rotateCube); } protected function stopRotateCube():void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE,_mouse_rotator.update); removeEventListener(Event.ENTER_FRAME,rotateCube); } protected function removeCube():void{ if(_cube!=null){ _cube.destroy(); if(test_holder.contains(_cube))test_holder.removeChild(this._cube); } } override public function destroy():void{ removeCube(); stopRotateCube(); FlexSimpleTraceBox.trace("CubeTest.destroy()"); } //possibility for developer to document findings, important items to note etc. Use HTML. override public function getNotes():String{ var note:String=""; note+="