我需要的答案似乎應該是一個非常明顯的問題,但我無法在任何地方找到它:Flash AS3 |刪除或停止功能
如何停止Flash AS3中的函數?對於基本示例,當我按下按鈕時,該功能開始工作。當我再次按下按鈕時,功能停止。
更具體地說,我該如何定製這個if/boolean(或類似的)語句,以便當/當變量爲真時,函數開始工作。一旦變量變爲false,該功能將停止。當它再次成真時,這個過程會重複。
正在討論的代碼是另一個用戶幫助爲我創建的平移功能。
if(Zoomed == true) {
MovieClip.y = stage.stageHeight/2;
MovieClip.x = stage.stageWidth/2;
addEventListener(MouseEvent.MOUSE_MOVE, panFunction);
function panFunction(me: MouseEvent): void {
MovieClip.x = stage.stageWidth/2 - (stage.mouseX - stage.stageWidth/2);
MovieClip.y = stage.stageHeight/2 - (stage.mouseY - stage.stageHeight/2);
}
}
正如你所看到的,我希望它這樣,當布爾函數「已縮放」是真實的,功能激活和平移功能的工作方式。問題是,當我回到Zoomed == false時,該函數仍在運行。我正在尋找如何阻止這種情況的發生。我試過'while'循環,但它最終只是凍結動畫(可能是因爲它是一個運動圖像,它試圖渲染每一幀與此代碼)。
總結:我需要一種方法可以打開和關閉功能。或者,能夠添加並在需要/不需要時刪除它應該工作相同。任何幫助,這將是一個很大的幫助,謝謝!
你確定放大會失敗嗎?你可以交易放大的價值來確定嗎? –
*跟蹤值 –
也不要將函數定義放在if塊中。只需將函數放在其他函數所在的位置,並在該塊內部調用它。這可能會解決你的問題。 –