Hi !
In this example facelink don`t work correctly ( when i drag mouse top|
bottom) but it`s work along X axis. Can anybody help me ?

public class cubeTest extends Sprite {
                private var _view:View3D;
                private var _cam:Camera3D;
                private var _cube:Cube;
                private var _cube2:Cube;
                private var _faceLink:FaceLink;

                public function cubeTest() {
                        super();
                        super.addEventListener(Event.ADDED_TO_STAGE, 
_addedToStage);
                }

                private function _addedToStage(e:Event):void {
                        _cam = new Camera3D({focus:50, x:0, y:0, z:-50, 
lookat:new
Number3D(0, 0, 0)});

                        _view = new View3D({x:super.stage.stageWidth/2, 
y:stage.stageHeight/
2, camera:_cam});
                        _view.renderer = Renderer.BASIC;
                        addChild(_view);
                        addEventListener(Event.ENTER_FRAME, _onEnterFrame);

                        _cube=new Cube({width:30, height:30, depth:30});
                        _cube2=new Cube({width:5, height:5, depth:5});

                        _view.scene.addChild(_cube);
                        _view.scene.addChild(_cube2);

                        _faceLink=new FaceLink(_cube2, _cube, 
_cube.faces[0],0,true);
                        super.stage.addEventListener(MouseEvent.MOUSE_MOVE, 
_mouseMove);
                        super.stage.addEventListener(MouseEvent.MOUSE_UP, 
_mouseUp);
                        super.stage.addEventListener(MouseEvent.MOUSE_WHEEL, 
_mouseWheel);
                }

                private function _onEnterFrame(e:Event):void {
                        _faceLink.update(true);
                        _view.render();
                }

                private var _lastPoint:Point;
                private var _lastRotation:Point=new Point(0,0);
                private function _mouseMove(e:MouseEvent):void {
                        if (e.buttonDown) {
                                if (!_lastPoint) _lastPoint=new Point(e.stageX, 
e.stageY);
                                else {
                                        
_cube.rotationY=_lastRotation.x+(e.stageX-_lastPoint.x)/3;
                                        
_cube.rotationX=_lastRotation.y+(e.stageY-_lastPoint.y)/3;
                                }
                        }
                }

                private function _mouseWheel(e:MouseEvent):void {
                        _cam.zoom+=(e.delta/10);
                }

                private function _mouseUp(e:MouseEvent):void {
                        _lastPoint=null;
                        _lastRotation=new Point(_cube.rotationY, 
_cube.rotationX);
                }
        }

Reply via email to