They should move equally in all directions. The problem may be in
focus, focal length, or field of view.
Somebody help solve the problem?

Example: http://malesya.ru/google/
Source FlashDevelop: http://www.malesya.ru/google/Away3dGoogle.rar
Source Flash CS :http://www.malesya.ru/google/flashaway3d.rar

Here is the code:

package
{
        import away3d.cameras.Camera3D;
        import away3d.containers.ObjectContainer3D;
        import away3d.containers.Scene3D;
        import away3d.containers.View3D;
        import away3d.core.light.PointLight;
        import away3d.core.math.Number3D;
        import away3d.materials.ColorMaterial;
        import away3d.primitives.Cube;
        import away3d.primitives.Plane;
        import flash.geom.Point;

        import flash.display.*;
        import flash.events.Event;
        /**
         * ...
         * @author Bdrs
         */
        public class Main extends Sprite
        {
                private var view:View3D;
                private var scene:Scene3D;
                private var cam:Camera3D;

                private var container:ObjectContainer3D = new ObjectContainer3D;
                private var container2:ObjectContainer3D = new 
ObjectContainer3D;
                private var plane:Plane;

                private var spriteContainer:Sprite = new Sprite;
                private var spriteContainer2:Sprite = new Sprite;
                private var sprite:Sprite = new Sprite;

                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }

                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        stage.align = StageAlign.TOP_LEFT;

                        ////////////////////// Flash constructor
                        sprite.graphics.beginFill(0xFF0000, .6);
                        sprite.graphics.drawRect( -50, -50, 100, 100);

                        spriteContainer.x = stage.stageWidth / 2;
                        spriteContainer.y = stage.stageHeight / 2;
                        spriteContainer2.z = 1000;

                        addChild(spriteContainer)
                        spriteContainer.addChild(spriteContainer2);
                        spriteContainer2.addChild(sprite);

                        /////////////////////   AWAY 3D Constructor
                        view = new View3D;
                        view.x=stage.stageWidth/2;
                        view.y=stage.stageHeight/2;

                        scene=new Scene3D;
                        cam = new Camera3D;

                        cam.z=-1000;
                        cam.lookAt(new Number3D(0,0,0));

                        view.scene = scene;
                        view.camera = cam;
                        addChild(view);

                        var mat:ColorMaterial = new ColorMaterial(0x0000FF);
                        mat.alpha = .6;
                        plane = new Plane;
                        plane.material = mat;
                        plane.rotationX = 90;


                        container2.z = 1000;
                        scene.addChild(container);
                        container.addChild(container2);
                        container2.addChild(plane);

                        addEventListener(Event.ENTER_FRAME, onEF);

                        stage.addEventListener(Event.RESIZE, onResize);
                        Resize();
                }
                public function onEF(e:Event):void {
                        spriteContainer.rotationY = (mouseX / stage.stageWidth 
- .5) * 90;
                        container.rotationY = (mouseX / stage.stageWidth - .5) 
* 90;
                        spriteContainer.rotationX = -( 
mouseY/stage.stageHeight-.5) * 90;
                        container.rotationX = -(mouseY / stage.stageHeight - 
.5) * 90;

                        view.render();
                }
                public function onResize(e:Event):void {
                        Resize();
                }
                private function Resize():void{
                        view.x=stage.stageWidth/2;
                        view.y=stage.stageHeight/2;
                        spriteContainer.x = stage.stageWidth / 2;
                        spriteContainer.y = stage.stageHeight / 2;
                        
root.transform.perspectiveProjection.projectionCenter=new
Point(stage.stageWidth / 2,stage.stageHeight / 2);
                }
        }

}

Reply via email to