在KeyboardEvent我得到按键事件的对象中,有没有办法知道事件是第一次按下,还是按下按键时重复?我想在按下键时切换设置; 我可以听一下按键,但我更喜欢按下按键后立即采取动作...只要我可以阻止它在按键重复事件生成时来回切换.
经过测试和工作
import flash.events.KeyboardEvent;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onUp);
var keys:Object = {};
function onDown(e:KeyboardEvent):void {
if( ! Boolean(e.keyCode in keys)) {
trace("First Time");
keys[e.keyCode] = true;
}
}
function onUp(e:KeyboardEvent):void {
delete keys[e.keyCode];
}
Run Code Online (Sandbox Code Playgroud)
将密钥代码存储在对象中以及在密钥上使用delete的想法最初来自Senoculars库.见http://www.senocular.com/flash/actionscript/