1

我一直在寻找一种有效地使用 AS2 来检测整个 .swf 上的空格键按下的方法,而不管焦点是什么影片剪辑。我发现了几个声称的解决方案,它们要么适用于 AS3,要么适用于 AS2,但并没有完全满足我的需要。在调整了我的发现之后,到目前为止,还没有任何一个检测到的空格键按下。任何人都可以提出替代方案吗?我觉得这很明显,我很想念它!

这是我迄今为止尝试过的(位于时间轴上的第一个也是唯一一个帧内):1)

var stageListener:Object = new Object();
stageListener.onKeyUp = function() {
    if(Key.getAscii() == 32){
        trace("spaceup");
        dostuff;
    }
};
Stage.addListener(stageListener);

2)

stage.onKeyUp = function() {
    if(Key.getAscii() == 32){
        trace("spaceup");
        dostuff;
    }
};

3)

_root.onKeyUp = function() {
    if(Key.getAscii() == 32){
        trace("spaceup");
        dostuff;
    }
};

4)

Main.stage.onKeyUp = function() {
    if(Key.getAscii() == 32){
        trace("spaceup");
        dostuff;
    }
};

5) 将其中一个附加到 swf 中的每个显示级交互式影片剪辑。依然没有!

this.onKeyUp = function() {
    if(Key.getAscii() == 32){
        trace("spaceup");
        dostuff;
    }
};

感谢您的任何帮助!

4

1 回答 1

2

你的第一次尝试非常接近。Key对象是您附加侦听器的位置,而不是舞台。

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
   if(Key.getCode() == 32){
       //do something here for space bar press
   }
};
Key.addListener(keyListener);

AS2 非常复古……我希望你有充分的理由使用它而不是 AS3

于 2012-09-14T23:00:54.270 回答