Fabrice,

Thanks a lot... :)

Patrick

On Jan 20, 2:16 pm, Fabrice <[email protected]> wrote:
> it works but...
> try
> inc += 0.01;
>
> What is happening is: it goes so fast, just 10 updates per sec that it
> reaches the end and go back to zero.
>
> I've changed here and there your code...
>
> note that in 2.6 you do not longer need to have an extra point to
> define a line for a Path (was a "controled" bug until all other
> classes were compatible)
> if you use official tag release, then keep your code.
>
> Fabrice
>
> package nl {
>         import away3d.animators.PathAnimator;
>         import away3d.animators.data.Path;
>         import away3d.cameras.Camera3D;
>         import away3d.containers.View3D;
>         import away3d.core.math.Number3D;
>         import away3d.extrusions.PathExtrude;
>         import away3d.primitives.Cube;
>         import flash.display.Sprite;
>         import flash.events.Event;
>
>         public class PathAnimatorTest extends Sprite
>         {
>                 private var view:View3D;
>                 private var cam:Camera3D;
>                 private var cube:Cube;
>                 private var animator:PathAnimator;
>                 private var _path:Path;
>                 private var ext:PathExtrude;
>                 private var inc:Number = 0;
>
>                 public function PathAnimatorTest()
>                 {
>                        addEventListener(Event.ADDED_TO_STAGE, init);
>                 }
>                 private function init(e:Event):void
>                 {
>                                                 view = new View3D();
>                                                 view.x = stage.stageWidth *.5;
>                                                 view.y = stage.stageHeight 
> *.5;
>                                                 view.camera.z = -2000;
>                                                 addChild(view);
>                         view.camera.y = 2000;
>                         view.camera.lookAt(new Number3D(0,0,0));
>
>                                                 cube = new Cube();
>                         cube.x = 100;
>                         view.scene.addChild(cube);
>
>                         _path = new Path([new Number3D(0,0,0), new
> Number3D(0,0,2500),new Number3D(0,0,5000)]);
>                                                 var points:Array = [new 
> Number3D(100,0,0), new Number3D
> (-100,0,0)];
>                         ext = new PathExtrude(_path,points, null,
> null, {});
>                         view.scene.addChild(ext);
>
>                         this.animator = new PathAnimator(_path, cube,
> {lookat:false, aligntopath:false});
>                         this.addEventListener(Event.ENTER_FRAME,
> enterFrame);
>                 }
>                 private function enterFrame(e:Event):void
>                 {
>
>                                                 try{
>                                                         inc = (inc + 0.1 > 
> 1)? 0 : inc+0.1;
>                                                         
> this.animator.update(inc);
>                                                         view.render();
>                                 cube.rotationX++;
>                                                         
> view.camera.lookAt(this.animator.position);
>                                                 } catch (e:Error){
>                                                         trace("error...");
>                                                 }
>                 }
>         }
>
> }
>
> On Jan 20, 9:37 am, Fabrice <[email protected]> wrote:
>
> > oh haven't seen that mail...
> > I'll have a look...
>
> > Fabrice
> > On Jan 20, 2009, at 6:33 AM, Patrick wrote:
>
> > > package {
> > >    import away3d.animators.PathAnimator;
> > >    import away3d.animators.data.Path;
> > >    import away3d.cameras.Camera3D;
> > >    import away3d.containers.View3D;
> > >    import away3d.core.math.Number3D;
> > >    import away3d.extrusions.PathExtrude;
> > >    import away3d.primitives.Cube;
>
> > >    import flash.display.Sprite;
> > >    import flash.events.Event;
>
> > >    public class PathAnimatorTest extends Sprite
> > >    {
> > >            private var view:View3D;
> > >            private var cam:Camera3D;
> > >            private var cube:Cube;
> > >            private var animator:PathAnimator;
> > >            private var _path:Path
> > >            private var ext:PathExtrude;
>
> > >            private var inc:Number = 0;
>
> > >            public function PathAnimatorTest()
> > >            {
> > >                    init();
> > >            }
>
> > >            private function init():void
> > >            {
> > >                    cam = new Camera3D;
> > >                    cam.z = -2000;
> > >                    cam.moveUp(2000);
> > >                    cam.lookAt(new Number3D(0,0,700));
>
> > >                    cube = new Cube();
> > >                    cube.x = 100;
>
> > >                    view = new View3D();
> > >                    view.x = 200;
> > >                    view.y = 200;
> > >                    view.camera = cam;
> > >                    this.view.scene.addChild(cube);
> > >                    this.addChild(view);
>
> > >                    _path = new Path([new Number3D(0,0,0), new 
> > > Number3D(0,0,0),new
> > > Number3D(0,0,0),null,new Number3D(0,0,0),new Number3D(0,0,5000)]);
>
> > >                    ext = new PathExtrude(_path,[new Number3D(100,0,0),new 
> > > Number3D
> > > (-100,0,0)],null,null,null);
> > >                    this.view.scene.addChild(ext);
>
> > >                    this.animator = new PathAnimator(this._path, this.cube,
> > > {lookat:false, aligntopath:false});
>
> > >                    this.addEventListener(Event.ENTER_FRAME, enterFrame);
> > >            }
>
> > >            private function enterFrame(e:Event):void
> > >            {
> > >                    //inc += 0.1;
> > >                    this.animator.update(0);
> > >                    view.render();
> > >                    cube.rotationX++;
>
> > >            }
> > >    }
> > > }
>
> > > On Jan 20, 5:19 am, Patrick <[email protected]> wrote:
> > >> Hi All,
>
> > >> I am having a problem to animate an object along a path. I followed
> > >> Fabrice's tutorial.
>
> > >> When I call the update method in the render loop and pass a value 0
> > >> the object, in my case a cube,  is positioned at the beginning of the
> > >> path. If I change the value passed to anything other than 0 but still
> > >> below 1, the code breaks.
>
> > >> Why is         pathAnimator.update(0);    working,
>
> > >> but               pathAnimator.update(0.5);    not?
>
> > >> Any answers will be appreciated. :)
>
> > >> Thanks, Patrick

Reply via email to