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);
}
}