【发布时间】:2009-04-29 18:04:21
【问题描述】:
我有一个键盘事件侦听器,我正在侦听number pad key codes(1 到 9),以了解何时激活数字锁定;这很好用。但是,在我的应用程序中,我还希望允许使用修饰键 (CTRL) 和数字键盘键。奇怪的是,当按住 CTRL 时,按 1 或 3 不会产生任何键盘事件,而 2 和 4 - 9 会产生预期的事件。 我在谷歌搜索后看到了其他关于这个问题的参考资料,所以我认为这不一定是 Flash 特有的,但我还没有找到任何答案。
我尝试使用 SHIFT 作为修饰符,但这只会导致从数字键盘生成键码,就好像数字锁定已关闭(例如,SHIFT+Numpad1 返回结束键码,无论数字锁定状态如何) - 显然这个是有意的 Windows 行为。由于altcodes,ALT 不是小键盘的选项。
关于如何让 CTRL+Numpad1 和 CTRL+Numpad3 生成键盘事件的任何想法?或者对他们为什么不这样做的任何解释?
编辑:我尝试在 Firefox 中使用这些组合键,如下 enriquein 建议的那样,所有组合键都可以正常工作,这让我相信这可能是 Flash 特有的问题,或者至少不是硬件问题。
【问题讨论】:
-
这里从死里复活,以防万一其他人在这里偶然发现。对于在浏览器(特别是 Flash 和 Silverlight)中运行并在 Internet Explorer 中运行的插件,我遇到了与此类似的问题。本质上,IE 拥有的任何快捷方式都胜过网页和插件; IE 吞下键盘事件,不会将其发送给页面中运行的插件。您的具体问题可能是因为 IE 有 CTRL+1 到 3 的快捷方式(但没有 CTRL+4 到 9)。我在非 IE 浏览器中没有遇到同样的问题。
标签: windows flash keyboard modifier-key