暂时禁用eventlistener直到动画完成

时间:2012-11-09 08:58:14

标签: actionscript

我正在开发一款基本的Flash格斗游戏。我不是开发人员所以我是动作脚本的新手,除了我对我的课程编码有一些背景知识。 问题是- 大约有6个战斗动作,我想禁用所有6个key_down事件,直到动画完成。并且所有6个动画都有不同的时间帧。 some1可以帮我解决这个问题吗?

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个。

1 个答案:

答案 0 :(得分: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;