使用数字键盘修改键显示好奇的行为

我有一个键盘事件监听器,我正在监听数字键盘密码 (1到9),当数字locking被激活; 这工作正常。 不过,在我的应用程序中,我也希望允许使用修饰键(CTRL)和数字键。 奇怪的是,按住CTRL时,按1或3不会产生任何键盘事件,而2和4-9确实会产生预期的事件。 我在googlesearch后看到了其他一些关于这个问题的引用,所以我不认为这是必须的,但是我还没有find任何答案。

我尝试使用SHIFT作为修饰符,但这只是导致从数字键生成密钥代码,就好像数字锁已closures(例如,SHIFT + Numpad1返回结束键代码,无论数字locking状态) – 显然这是故意的Windows行为。 由于altcodes, ALT不是数字键盘的选项。

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

编辑:我尝试了在Firefox中使用这些组合键,因为enriquein下面提出的build议,所有的组合键工作A – 确定,导致我相信这可能是一个Flash特定的问题,或至less不是硬件问题。

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

我几乎可以肯定,这不是Flash相关的,因为我有一个本地化的键盘类似的问题,并不能让它产生事件的某些键或组合键。

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

确实,它看起来像它的键盘特定。 我在Firefox中阅读这个问题时尝试了按键组合,并且按下Ctrl + Number(切换到选项卡#Number)触发相同的事件。

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

某些键盘不会注册某些组合键。 我认为这是关于如何把它们放在一起。 例如有些可能会注册左手Ctrl +组合键而不是右Ctrl +同一个键!

解决办法是检测Ctrl键的关键和关键事件。

然后,您可以提高Ctrl +数字键的自定义事件,或使用易失性标志来显示Ctrl键状态。