package { import away3d.containers.View3D; import away3d.events.MouseEvent3D; import away3d.materials.MovieMaterial; import away3d.primitives.Sphere; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; [SWF(width="500", height="200", frameRate="60", backgroundColor="#FFFFFF")] public class Basic09_MovieMaterial2 extends Sprite { [Embed(source="resources/caustics.swf", symbol="caustics")] private var causticsMovie:Class; private var view:View3D; private var materialMovie:MovieClip; private var isMaterialPlaying:Boolean = true; public function Basic09_MovieMaterial2() { view = new View3D({x:250,y:100}); addChild(view); materialMovie = new causticsMovie() as MovieClip; var causticsMaterial:MovieMaterial = new MovieMaterial( materialMovie ); var sphere:Sphere = new Sphere({material:causticsMaterial}); view.scene.addChild(sphere); this.addEventListener(Event.ENTER_FRAME,update); // Listen for mouse clicks on the sphere sphere.addEventListener(MouseEvent3D.MOUSE_DOWN,sphereClick); } private function update(e:Event):void { view.render(); } private function sphereClick(e:MouseEvent3D):void { if(isMaterialPlaying){ materialMovie.stop(); isMaterialPlaying = false; } else { materialMovie.play(); isMaterialPlaying = true; } } } }