It might be how you're loading the 3ds file, or what you're casting it
to. Try this.

//your variables
var logo:ObjectContainer3D;


//create 2 new functions
function initLogo():void {
  var loader:Loader3D = Max3DS.load("assets/vwc.3ds",
{texturePath:"assets/",name:"logo3D",loadersize:100});
    loader.rotationX = 20;
    loader.useHandCursor = true;

  loader.addOnSuccess(onSuccess);
  View.scene.addChild(loader);
}

function onSuccess(event:Loader3DEvent):void {
  logo = e.loader.handle as ObjectContainer3D;
  logo.addEventListener(MouseEvent3D.MOUSE_DOWN, mov);
}


Then call initLogo(); where you had the original block of code.




On Nov 23, 8:40 am, juliancruz87 <[email protected]> wrote:
> 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);

Reply via email to