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:

  1. p.addOnMouseDown(planoElegido);

-Recoger el objeto pulsado en la función, por medio del parámetro object:

  1. 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();
		}
 
	}
 
}

Comentarios:
Diego dijo:
Hey podrian poner el archivo fuente para ver bien como funca...
Diego dijo:
Hey podrian poner el archivo fuente para ver bien como funca...
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: