0

在AS3中,我試圖讓鼠標位於舞臺右側時水平滾動。 (我的背景情況下被稱爲「BP」)。actionscript滾動

這不是工作:

while (mouseX > 600) 
    {bp.x -= 2;} 

回答

3

的Flash用戶界面更新一幀一幀,並且不應該被阻止,如while循環實現。

每一幀,您都可以測試mouseX的位置並確定滾動背景的多少。

下面是一個示例實現:

import flash.events.Event; 

addEventListener(Event.ENTER_FRAME, frameHandler); 

function frameHandler(event:Event):void 
{ 
    var d:Number = (stage.stageWidth >> 1) - stage.mouseX; 
    bg.x -= d * 0.1; 
} 
+1

這是正確的。作爲進一步的說明,'while'循環只運行一次。它不是經常運行,檢查'mouseX> 600'。它運行一次,確定它是錯誤的,然後繼續。循環當前的設置方式,它永遠不會再運行。按照賈森已經佈置的,你會得到這個工作。或者,您也可以在MouseEvent.MOUSE_MOVE處理程序中執行此操作。這可能會在單線程應用程序上佔用更少的CPU資源。 –

相關問題