3

我正在开发一个基本的 Flash 格斗游戏。我不是开发人员,所以我是 actionscript 的新手,除了我对课程中的编码有一些背景知识。问题是 - 大约有 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 个。

4

1 回答 1

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;
于 2012-11-09T10:24:35.553 回答