将Actionscript 2中的键盘侦听器添加到整个Flash影片中

时间:2012-09-14 18:43:06

标签: flash event-handling actionscript-2 keyboard-events

我一直在寻找一种方法来有效地使用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;
    }
};

感谢您的帮助!

1 个答案:

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