2012-11-09 32 views
3

我正在製作基本Flash遊戲。我不是一名開發人員,所以我對動作很陌生,只是我有一些關於編程的背景知識。 問題是- 有大約6個戰鬥動作,我想禁用所有6個key_down事件,直到動畫完成。所有6個動畫有不同的時間框架。有人能幫我解決這個問題嗎?暫時禁用eventlistener,直到動畫完成

stage.addEventListener(KeyboardEvent.KEY_DOWN, enterKeyHandler); 
function enterKeyHandler(event:KeyboardEvent):void { 
     if (event.keyCode == Keyboard.B) { 
     gotoAndPlay(252);} 

     if (event.keyCode == Keyboard.V) { 
     gotoAndPlay(259);} 

我已經放下了其中只有2個,但總共有6個。

回答

0

我會使用一個公共靜態標誌,例如: keyboardDisabled:Boolean = false;

當您播放動畫時,您可以將其設置爲true,並且在監聽鍵盤事件的函數內部,檢查鍵盤是否被禁用並立即返回。

一些代碼看起來像

public static var keyboardDisabled:Boolean = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, enterKeyHandler); 
function enterKeyHandler(event:KeyboardEvent):void { 

     if (keyboardDisabled) 
     return; 

     if (event.keyCode == Keyboard.B) { 
     gotoAndPlay(252);} 

     if (event.keyCode == Keyboard.V) { 
     gotoAndPlay(259); 
} 

然後在幀中動畫開始

keyboardDisabled = true; 

而且在動畫結束

keyboardDisabled = false; 
+0

THANK YOU它的工作! 但我沒有類或包,所以「var keyboardDisabled:Boolean = false;」工作。非常感謝:) –

+0

很酷!很高興我能給你解決方案 –

相關問題