仅在AS3中检测第一个按键事件

Mr.*_*Boy 3 actionscript-3

KeyboardEvent我得到按键事件的对象中,有没有办法知道事件是第一次按下,还是按下按键时重复?我想在按下键时切换设置; 我可以听一下按键,但我更喜欢按下按键后立即采取动作...只要我可以阻止它在按键重复事件生成时来回切换.

Chr*_*ris 8

经过测试和工作

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/