2

我有一个键盘事件侦听器,我正在侦听数字键盘键码(1 到 9),以便激活数字锁定;这很好用。但是,在我的应用程序中,我还希望允许使用修饰键 (CTRL) 和数字键盘键。奇怪的是,当按住 CTRL 时,按 1 或 3 不会产生任何键盘事件,而 2 和 4 - 9 会产生预期的事件。 经过一些谷歌搜索后,我看到了有关此问题的其他参考资料,因此我认为这不一定是特定于 Flash 的,但我还没有找到任何答案。

我尝试使用 SHIFT 作为修饰符,但这只会导致从数字键盘生成键码,就好像数字锁定已关闭(例如,SHIFT+Numpad1 返回 End 键码,无论数字锁定状态如何) - 显然这是故意的 Windows行为。由于altcodes , ALT 不是小键盘的选项。

关于如何让 CTRL+Numpad1 和 CTRL+Numpad3 生成键盘事件的任何想法?或者对他们为什么不这样做的任何解释?

编辑:我尝试在 Firefox 中使用这些组合键,如下 enriquein 建议的那样,所有组合键都可以正常工作,这让我相信这可能是 Flash 特定的问题,或者至少不是硬件问题。

4

4 回答 4

0

我几乎可以肯定它与 Flash 无关,因为我在本地化键盘上遇到了类似的问题,并且根本无法让它为某些键或组合键生成事件。

尝试枚举所有关键事件并搜索它们映射到的内容,或者谷歌 evtest.c,编译并运行它,看看它要说什么。

于 2009-05-02T15:15:38.513 回答
0

过去我在特定键盘上遇到过小键盘键的问题。各种组合键无法在特定键盘上注册,在这种情况下,您使用的键盘可能不会生成任何事件。不能保证可以正常工作,但我建议尝试使用不同的键盘(不同的供应商等),看看是否可行。如果您使用的是非英文键盘,本地化键盘也可能存在问题。

于 2009-04-30T10:12:14.563 回答
0

实际上,它看起来像是特定于键盘的。我在 Firefox 中阅读此问题时尝试了组合键,它们触发了与按 Ctrl+Number 相同的事件(即切换到选项卡#Number)。

这是使用标准的美国/101 键英文键盘(没有额外的媒体按钮或任何东西)。

于 2009-05-08T16:10:51.320 回答
0

某些键盘不注册某些组合键。我认为这取决于它们的组合方式。例如,有些人可能会注册左手 Ctrl + 组合键,但不会注册右 Ctrl + 同一个键!

一种解决方法是检测 Ctrl 键的按键按下和按键向上事件。

然后,您可以为 Ctrl + 数字键盘键引发自定义事件,或者使用 volatile 标志来显示 Ctrl 键状态。

于 2009-05-13T07:39:41.300 回答