Good time of the day,

I have found that HoverCamera3D does not work at all with the latest
trunk.
For instance the code bellow works perfectly with away 2.2. and
earlier verisons but does not work at all with the latest trunk,
throwing packs of errors.

package
{
        import flash.display.MovieClip;
        import flash.events.*;
        import away3d.cameras.*;
        import away3d.containers.*;
        import away3d.primitives.*;
        import away3d.core.math.*;
        import away3d.core.base.*;
        import away3d.materials.*;

        /**
         * ...
         * @author DefaultUser (Tools -> Custom Arguments...)
         */
        public class MainSite extends MovieClip
        {
                public var view:View3D;
                private var sphere:Sphere;
                public var lastMouseX:Number = 0;
                public var lastMouseY:Number = 0;
                public var dragX:Number=1;
                public var dragY:Number = 1;
                private var camera:HoverCamera3D;

                public function MainSite() {
                        init3DObjects();
                        initCamera();
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, 
rotateAround);
                }

                public function init3DObjects()
                {
                        this.sphere=new Sphere();
                        this.view=new View3D({x:this.stage.stageWidth/
2,y:this.stage.stageHeight/2});
                        this.addChild(this.view);
                        this.view.scene.addChild(this.sphere);
                        this.addEventListener(Event.ENTER_FRAME, 
this.enterFrame);
                }

                public function enterFrame(e:Event) {
                        view.render();
                }

                public function initCamera():void
                {
                        this.camera = new HoverCamera3D();
                        this.camera.distance = 1000;
                        this.camera.tiltangle = 45;
                        this.camera.targettiltangle = 50;
                        this.camera.maxtiltangle = 90;
                        this.camera.mintiltangle = -30;
                        this.camera.targetpanangle = 0;
                        this.camera.panangle=0;
                        this.camera.yfactor = 1;
                        this.camera.steps = 8;
                        this.camera.zoom = 7;
                        this.camera.position=new Number3D(0,0,1000);
                        this.view.camera=this.camera;
                        this.camera.hover();
                }

                public function rotateAround(e)
                {
                        this.followMouse();
               this.camera.targetpanangle += dragX;
               this.camera.targettiltangle += dragY;
                           this.camera.hover();
                }

                public function followMouse()
                {
                           this.dragX = (stage.mouseX - this.lastMouseX);
               this.dragY = (stage.mouseY - this.lastMouseY);

                           this.lastMouseX = stage.mouseX;
               this.lastMouseY = stage.mouseY;
                }

        }

}

Best regards,
Anton Kulaga

Reply via email to