The MouseDown event is not working in away3d.core.base.Object3D object
after loading at 3ds object using the Max3DS.load function, we adds
the event listener using the object3D method addOnMouseDown (listener:
function), but when you click the object it is not generating the
event, but if we use a primitive object that works perfectly. Please
we need help ASA because we don’t know what we are doing wrong. Below
the code used. The Away3D version we are using is 3.4.0.
Thank you very much.
import away3d.cameras.Camera3D;
import away3d.containers.View3D;
import away3d.containers.ObjectContainer3D;
import away3d.loaders.Loader3D;
import away3d.core.base.Object3D;
import away3d.core.math.Number3D;
import away3d.events.MouseEvent3D;
import away3d.events.Object3DEvent;
import away3d.events.Loader3DEvent;
import away3d.core.base.*;
import away3d.core.utils.Cast;
import away3d.core.render.*;
import away3d.loaders.Max3DS;
import away3d.loaders.utils.TextureLoader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width="800", height="600", frameRate="600",
backgroundColor="#000000")];
var cam:Camera3D;
var lastKey:uint;
var keyIsDown:Boolean = false;
var View:View3D;
var loader:ObjectContainer3D;
var lastMouseX:Number;
var lastMouseY:Number;
var logo:Loader3D;
var obj3D:Object3D = new Object3D();
cam = new Camera3D();
cam.z = -2000;
cam.y = 250;
cam.x = 250;
View = new View3D({camera:cam,x:300,y:
300,mouseChildren:false,mouseZeroMove:false});
addChild(View);
View.render();
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp);
addEventListener(Event.ENTER_FRAME,onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN,LogoMouseDown);
function onEnterFrame(e:Event):void{
if(keyIsDown){
// if the key is still pressed, just keep on moving
switch(lastKey){
case 87: cam.moveUp(10); break;
case 83: cam.moveDown(10); break;
case 65: cam.moveLeft(10); break;
case 68: cam.moveRight(10); break;
case Keyboard.UP : cam.moveForward(10);
break;
case Keyboard.DOWN : cam.moveBackward(10);
break;
}
}
// render the view
View.render();
}
function keyDown(e:KeyboardEvent):void{
lastKey = e.keyCode;
keyIsDown = true;
}
function keyUp(e:KeyboardEvent):void{
keyIsDown = false;
}
function MouseDown(event:MouseEvent):void{
trace("menos");
}
function LogoMouseDown(event:MouseEvent):void{
trace("si");
}
function mov(event:MouseEvent3D):void{
var temp = event.object
trace(temp);
trace("si");
}
logo = Max3DS.load("assets/vwc.3ds",
{texturePath:"assets/",name:"logo3D",loadersize:100});
obj3D = logo.handle;
obj3D.rotationX = 20;
obj3D.useHandCursor = true;
View.scene.addChild(obj3D);
obj3D.addOnMouseDown(mov);