0

我正在为 Away3D 中的 Flash 制作第一人称射击游戏,但 setCursorPos 似乎无法正常工作。当我调用 setCursorPos 时,光标会移动到屏幕中央,但也会触发 MOUSE_MOVE 事件。这是预期的行为吗?我如何知道 MOUSE_MOVE 事件是由 setCursorPos 引起的;或者它是否是由实际的鼠标移动引起的?这是我正在尝试做的代码示例:

private function onMove(evt:MouseEvent):void {
if (prevY == 0) {
                    prevY = evt.stageY;
                    prevX = evt.stageX;
                }
                    mainView.camera.rotate(Vector3D.X_AXIS,evt.stageY - prevY);

                }
            }
            //This triggers a MOUSE_MOVE event, causing this function to be called again.
                nativeInterface.setCursorPos(nativeInterface.screenResolution[0] / 2, nativeInterface.screenResolution[1] / 2);
}
4

1 回答 1

0

我不熟悉 nativeInterface 和 setCursorPos。你能提供更多细节吗?这是 Away3D 还是 Away3DLite ?

将两者分开的第一件事是检查eventPhase并在此基础上执行 if 语句,如果 eventPhase 不同,则取决于触发事件的时间/内容。

高温高压

于 2011-01-10T00:37:18.723 回答