我一直在寻找一种有效使用 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;
}
};
感谢您的任何帮助!
你和第一次尝试非常接近。 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