1. 注册侦听器
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
2. MouseDown触发函数
// 保存鼠标点击的摄像机参数和鼠标坐标信息
private function onMouseDown(event:MouseEvent):void
{
lastPanAngle = camera.panAngle;
lastTiltAngle = camera.tiltAngle;
lastMouseX = stage.mouseX;
lastMouseY = stage.mouseY;
move = true;
stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
3. MouseUp触发函数
private function onMouseUp(event:MouseEvent):void
{
move = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
4. 每帧都调用的onEnterFrame
private function onEnterFrame(event:Event):void
{
if (move) {
camera.panAngle = 0.3*(stage.mouseX - lastMouseX) + lastPanAngle;
camera.tiltAngle = 0.3*(stage.mouseY - lastMouseY) + lastTiltAngle;
}
camera.hover();
view.render();
}