Placed an example and full source with 3D assets of the ferrari example that is included in the Away3D examples on my site, feature include:
1. Another heavy model if you wish to test loading another model included 2. Another decimated blender version of the high poly model if your machine cant handle the heavy model (mine runs at 2fps using the heavy model) 3. Scene is prevented from rendering till boolean flag (loaded) is set to true 4. Text field is altered depending on place in script (loading, error, complete = author text) 5. Event listeners and function handlers for success and fail http://www.allforthecode.co.uk/aftc/forum/user/modules/forum/article.php?index=4&subindex=16&aid=278 GL D On 11 April 2011 19:03, Morantis <ad...@revolutionvps.us> wrote: > Ok, still having issues here and getting more confused by the minute. > > On Apr 11, 4:02 am, Fabrice3D <fabric...@gmail.com> wrote: > > 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.- Hide > quoted text - > > > > - Show quoted text - >