我一直在寻找一种方法来有效地使用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;
}
};
感谢您的帮助!
答案 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