add a onLoadedComplete event to the parser
then when its loaded, addChild the handle, the object3d.

function onLoadedComplete(e:Event)
        var myObject3DS:Object3D = e.loader.handle
        view.scene.addChild(myObject3DS);

Its also a good idea to listen to errors
loader.addOnError(onLoadedError);

as the size/scale of the display, all depends on camera distance/settings/lens 
from either your exporter or away.

Fabrice

On Apr 11, 2011, at 5:02 AM, Morantis wrote:

> I need to know what the exact format and syntax for importing a basic
> 3d model into Flash through Away3D is.  I have done a lot of searching
> and seen various methods that for me seem to produce varying errors or
> no visible object.  This is just a test to make sure I understand the
> concept before actually getting deeply into the programming, so for
> that reason I have not used a material for the model.  I assume that
> Away3D will still produce a visible result, just as a cube or sphere
> can be seen without assigning a specific material.  Let me say first
> that i fully understand the class imports and that is not an issue.  I
> have used AS on and off, so I understand that for the most part, plus
> have other programming experience, so that is not the major issue.  I
> am using Flash CS5 I believe and AS3 and Flash 10 formats.  I have an
> intial stage and use an external class for all the Away3D AS
> scripting.  I am playing with it and basically putting together a
> template to build furture Away3D/Flash from.  I am going to post the
> entire external package here, and I know it has some issues, it copied
> and pasted some portions from the Earth/Stars tutorial to save time
> and I have used 2 movie clips for zooming in and out on a basic cube.
> I used 3DMax to make a very basic torus and exported it to the root
> folder for the app and named it tube.3ds, I also produced a smaller
> version of the same called tube2.3ds.  You will see a lot of commented
> out lines as I have tried many methods to import the model.  I even
> tried as a Wavefront OBJ.  I really find this as the last stumbling
> block to going somewhere with this software so please help.  Here's my
> current AS...
> 
> package
> {
> 
>       import flash.display.Sprite;
>       import away3d.containers.*;
>       import away3d.core.base.*;
>       import away3d.primitives.*;
>       import away3d.materials.*;
>       import away3d.core.utils.Cast;
>       import away3d.cameras.*;
>       import flash.filters.BitmapFilter;
>       import flash.filters.BitmapFilterQuality;
>       import flash.filters.BitmapFilterType;
>       import flash.filters.GlowFilter;
>       import flash.events.MouseEvent;
>       import flash.events.Event;
>       import away3d.core.render.Renderer;
>       import flash.events.KeyboardEvent;
>       import flash.events.*;
>       import away3d.loaders.Max3DS;
>       import away3d.loaders.Obj;
> 
> 
>       //import fl.motion.MotionEvent;
> 
> 
>       public class hhh extends Sprite
>       {
> 
> 
>               public function hhh()
>               {
> 
> 
>                       var move:Boolean = false;
>                       var lastPanAngle:Number;
>                       var lastTiltAngle:Number;
>                       var lastMouseX:Number;
>                       var lastMouseY:Number;
>                       var skies:Sphere;
>                       var scene:Scene3D = new Scene3D();
>                       // Create and set up the camera
>                       var camera:HoverCamera3D = new 
> HoverCamera3D({zoom:2,focus:
> 200,distance:400});
>                       camera.panAngle = -180;
>                       camera.tiltAngle = 15;
>                       camera.hover(true);
>                       camera.yfactor = 1;
>                       var view:View3D = new 
> View3D({scene:scene,camera:camera});
>                       addChild(view);
>                       view.x = 250;
>                       view.y = 200;
>                       var desk:Cube = new Cube({material:"blue#white"});
>                       desk.height = 15;
>                       desk.width = 150;
>                       desk.depth = 25;
>                       desk.x = 100;
>                       view.scene.addChild(desk);
> 
> 
> 
>                       //var tube=new Max3DS();
>                       var tube:Max3DS=new Max3DS.load("tube.3ds");
>                       //var tube2:Obj=new Obj("tube2.obj");
>                       //view.scene.addChild(tube);
>                       tube.scale(100);
>                       view.render();
> 
> 
>                       function MouseDown(event:MouseEvent):void
>                       {
>                               lastPanAngle = camera.panAngle;
>                               lastTiltAngle = camera.tiltAngle;
>                               lastMouseX = stage.mouseX;
>                               lastMouseY = stage.mouseY;
>                               move = true;
>                       }
>                       function MouseUp(event:MouseEvent):void
>                       {
>                               move = false;
>                       }
>                       function MouseOverHandlerplus(event:MouseEvent):void
>                       {
>                               // Start your custom code
>                               // This example code displays the words "Moused 
> over" in the
> Output panel.
>                               camera.zoom = camera.zoom + 1;
> 
>                               // End your custom code
>                       }
>                       function MouseOverHandlerminus(event:MouseEvent):void
>                       {
>                               // Start your custom code
>                               // This example code displays the words "Moused 
> over" in the
> Output panel.
>                               camera.zoom = camera.zoom - 1;
> 
> 
>                               // End your custom code
>                       }
> 
>                       function zoomreset(event:KeyboardEvent):void
>                       {
>                               camera.zoom = 1;
> 
>                       }
> 
> 
>                       function onEnterFrame(e:Event):void
>                       {// rerender viewport
>                               var cameraSpeed:Number = 0.3;// Approximately 
> same speed as mouse
> movement.
>                               if (move)
>                               {
>                                       camera.panAngle = 
> cameraSpeed*(stage.mouseX - lastMouseX) +
> lastPanAngle;
>                                       camera.tiltAngle = 
> cameraSpeed*(stage.mouseY - lastMouseY) +
> lastTiltAngle;
>                               }
>                               camera.hover();
>                               view.render();
>                       }
>                       addEventListener(Event.ENTER_FRAME, onEnterFrame);
>                       stage.addEventListener(MouseEvent.MOUSE_DOWN, 
> MouseDown);
>                       stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
>                       plus.addEventListener(MouseEvent.CLICK, 
> MouseOverHandlerplus);
>                       zoomout2.addEventListener(MouseEvent.CLICK, 
> MouseOverHandlerminus);
>                       stage.addEventListener(MouseEvent.DOUBLE_CLICK, 
> zoomreset);
>                       stage.addEventListener(KeyboardEvent.KEY_UP, zoomreset);
> 
> 
> 
> 
> 
>               }
>       }
> 
> }
> 
> I can't seem to add a second agument to the new MAX3D without getting
> an error, so I stopped even trying that.  If I just go with blah:new
> Max3D(); then I can't find a way to attach this to a model file.
> var tube:Max3DS=new Max3DS.load("tube.3ds");
> gives me a method cannot be used as a constructor error.  At this
> point I cannot remember all the ways I have tried to do this.

Reply via email to