Pie*_*888 3 flash actionscript-3 keyboard-events enterframeevent
是否可以在不使用KeyboardEvent的情况下检查按下的键?
我有一个名为enterFrameHandler的ENTER_FRAME事件设置,如果按下任何键,我想在函数enterFrameHandler中检查.
使用的KeyboardEvent正常时,我可以检查很容易使用,检查事件的邀请码开关按键,但在一个ENTER_FRAME事件,这是不可能的我.
还有其他方法可以在ENTER_FRAME事件中检查键盘的状态吗?
更新:我发现了这个AS2脚本:
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_x -= power;
}
if (Key.isDown(Key.RIGHT)) {
_x += power;
}
if (Key.isDown(Key.UP)) {
_y -=power;
}
if (Key.isDown(Key.DOWN)) {
_y +=power;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎正在做我想要的,但它在AS2中,有没有人知道如何将其"翻译"为AS3?
将键状态存储在字典或对象中:
stage.addEventListener(KeyboardEvent.KEY_UP, keyHandleUp);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandleDown);
private var hash:Object = {};
private function keyHandleUp(event:KeyboardEvent):void {
delete hash[event.keyCode];
}
private function keyHandleDown(event:KeyboardEvent):void {
hash[event.keyCode] = 1;
}
private function isKeyDown(code:int):Boolean {
return hash[code] !== undefined;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4906 次 |
| 最近记录: |