Away3D: Manejo de eventos de ratón para Away 2.2 |
Etiquetas: View3D addOnMouseDown MouseEvent3D object Plane |
Para interactuar con el ratón en objetos 3d en Away3D 2.2, tenemos que seguir 2 pasos:
-Añadir el evento al objeto, utilizando la función addOnMouseDown (en este caso para detectar que hemos presionado en el objeto). A addOnMouseDown le pasamos como parámetro la función en la que se recoje el evento:
- p.addOnMouseDown(planoElegido);
-Recoger el objeto pulsado en la función, por medio del parámetro object:
- current = e.object;
El código completo:
package{ import flash.display.Sprite; import flash.events.Event; import away3d.containers.View3D; import away3d.primitives.Plane import away3d.core.base.Object3D; import away3d.materials.ColorMaterial import away3d.events.MouseEvent3D; import gs.TweenMax; public class Main extends Sprite{ private var visor:View3D; private var nPlanos:uint = 100; private var current:Object3D; public function Main():void{ crearAway(); crearPlanos(); } private function crearAway():void{ visor = new View3D({x:250,y:250}) addChild(visor); addEventListener(Event.ENTER_FRAME,renderizar); } private function crearPlanos():void{ for(var i:uint = 0; i < nPlanos; i++){ var p:Plane = new Plane({material:new ColorMaterial(Math.floor(Math.random() * 0xffffff)),width:50,height:50}) p.x = i%10 * 50 - 225; p.y = Math.floor(i/10) * 50 - 225 p.rotationX = -90; p.bothsides = true p.addOnMouseDown(planoElegido); visor.scene.addChild(p); } } private function planoElegido(e:MouseEvent3D):void{ if(current != null){ TweenMax.to(current, .5, {x:e.object.x , y:e.object.y, z:e.object.z}); } current = e.object TweenMax.to(current, .5, {x:0 , y:0, z:600}); } private function renderizar(e:Event):void{ visor.render(); } } }
|
|