actionscript-3 - 仅在 AS3 中检测第一个按键按下事件

标签 actionscript-3

KeyboardEvent我在按键事件上遇到的对象,有没有办法知道该事件是第一个按键按下,还是在按住键时重复?
我想在按下某个键时切换设置;我可以听 key-up 但我更喜欢在按下键后立即采取行动......只要我能在 key-down 重复事件生成时阻止它来回切换。

最佳答案

测试和工作

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];
}

在对象中存储键码以及在键上使用删除的想法最初来自 Senoscopes 库。见 http://www.senocular.com/flash/actionscript/

关于actionscript-3 - 仅在 AS3 中检测第一个按键按下事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418097/

相关文章:

actionscript-3 - 即使我已经导入了 Stage 类,为什么我的 Actionscript 3 类中的 stage 仍未定义?

java - 在 AS3 中使用 QuadTree 进行碰撞检测

actionscript-3 - youtube嵌入问题和Flash AS3中的按钮问题

windows - Windows 上的 Adob​​e Air 中的标题栏图标大小错误

java - Int 大小 字节 套接字 AS3

php - 如何使用 Flex 调用 AMF 服务并取回 MP3?

apache-flex - 从 Flex 4 中的项目渲染器调用自定义事件

actionscript-3 - 未收到同一 SWF 中多个 SharedObject 的 onSync 删除事件

apache-flex - 数据绑定(bind)将无法检测到 "topLevelApplication"的分配

flash - 从 DVD 驱动器安装 Air 应用程序