package { import away3d.cameras.HoverCamera3D; import away3d.containers.View3D; import away3d.events.MouseEvent3D; import away3d.lights.DirectionalLight3D; import away3d.materials.PhongColorMaterial; import away3d.primitives.SeaTurtle; import away3d.primitives.Sphere; import flash.display.Sprite; import flash.events.Event; import gs.TweenLite; [SWF(width="500", height="400", frameRate="60", backgroundColor="#FFFFFF")] public class Basic07_tweening extends Sprite { private var view:View3D; private var cam:HoverCamera3D; private var plaything:SeaTurtle; private var cover:Cover; private var mat:PhongColorMaterial; private var light:DirectionalLight3D; public function Basic07_tweening() { // Create a cam cam = new HoverCamera3D(); cam.z = -1000; // make sure it's positioned away from the default 0,0,0 coordinate cam.panangle = cam.targetpanangle = 0; cam.tiltangle = cam.targettiltangle = 0; cam.mintiltangle = -90; cam.zoom = 5; cam.focus = 200; // create a viewport view = new View3D({camera:cam, x:250,y:200}); addChild(view); // set up light light = new DirectionalLight3D(); light.ambient = .2; light.diffuse = .8; light.specular = 1; light.x = 100; light.y = -200; light.z = 400; light.brightness = 0.5; view.scene.addChild(light); // create a cube and put it on stage mat = new PhongColorMaterial(0xff3366); plaything = new SeaTurtle({material:mat,segmentsH:15,segmentsW:20,heigth:100,radius:50,x:-80}); plaything.scale(0.5); view.scene.addChild(plaything); plaything.addEventListener(MouseEvent3D.MOUSE_DOWN,doClick); // add the cover that prevents the problem with too many SWF files running at once cam.hover(); view.render(); cover = new Cover(this,500,400); addChild(cover); // render on enterframe this.addEventListener(Event.ENTER_FRAME,render); } private function doClick(e:MouseEvent3D):void { /* var sp:Sphere = new Sphere({material:mat,segmentsW:5, segmentsH:5, radius:10, x:e.sceneX, y:e.sceneY, z:e.sceneZ}); view.scene.addChild(sp); */ var randomX:Number = Math.random()*200-100; var randomY:Number = Math.random()*200-100; var randomZ:Number = Math.random()*1200-600; var randomRot:Number = Math.random()*365; var randomCamRot:Number = Math.random()*365; TweenLite.to(plaything, 1, {x:randomX,y:randomY,z:randomZ,rotationX:randomRot}); } private function render(e:Event):void { if(!cover.visible) { // Render the view cam.hover(); view.render(); } } } }