【发布时间】:2009-02-02 03:35:40
【问题描述】:
我有一个需要对“长按键”做出反应的界面。这意味着根据按键按下的时间长短,对同一按键执行 2 种不同的操作:
按左光标:操作 A
按住左光标:操作 B
嗯,事实证明我想的更难。主要问题是,如果您按住键,Keyboard.KEY-DOWN 和 Keyboard.KEY-UP 都会连续触发。这对我来说看起来很奇怪,但如果您考虑输入文本可能会有意义(如果您正在输入文本并按住一个键,它会开始填充空间)。
当我试图解决这个问题时,我想到了在 KEY-DOWN 上启动一个计数器并在 KEY-UP 上重置它。然后,如果它达到某个阈值,则触发一个事件。问题是计数器会立即重置,因为它们会一直触发 KEY-UP 事件。
我知道诸如BigRoom 和Senocular 之类的键盘轮询类,但它们不能解决问题,因为它们的状态基于相同的事件。
我可以让计时器在 KEY-DOWN 上启动计时器,并在 x 毫秒后检查该键是否仍处于关闭状态,但这会假设该键一直处于关闭状态。我不认为它是可靠的。
这就是我开始没有想法的地方。我忽略了一个更简单的方法吗?我希望有!
谢谢,
胡安
【问题讨论】:
标签: actionscript-3 keyboard-events