2011-01-09 74 views
0

我在Away3D中爲Flash製作第一人稱射擊遊戲,但似乎setCursorPos無法正常工作。當我調用setCursorPos時,光標移動到屏幕的中心,但也觸發MOUSE_MOVE事件。這是預期的行爲?我怎麼知道MOUSE_MOVE事件是由setCursorPos引起的;或者它是否由實際的鼠標移動引起?這裏是我想要做的代碼示例:Flash中的setCursorPos問題 - Away3D

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

回答

0

我不熟悉nativeInterface和setCursorPos。你能提供更多的細節嗎?這是Away3D還是Away3DLite?

想到將兩者分開的第一件事是檢查eventPhase以及if和if語句是否基於此,如果eventPhase根據何時觸發事件而不同。

HTH

+0

eventPhase總是返回3,所以這種方法不起作用。 – IDWMaster 2011-01-10 04:48:18