我在弄清楚如何区分键盘上的 Return 键和数字键盘上的 Enter 键时遇到了一些麻烦。
我已经成功地使用以下方法将其他键与重复键分开,例如 CTRL、ALT 和 Shift:
if(e.keyLocation == KeyLocation.RIGHT) // is on right side of keyboard
or
if(e.keyLocation == KeyLocation.LEFT) // is on left side of keyboard
但是,当尝试使用以下方法将我的 Enter 键与 Return 键分开时:
if(e.keyLocation == KeyLocation.NUM_PAD)
Flash 坚持认为他们都来自
KeyLocation.Standard
还值得一提的是,Flash 将两个键视为完全相同的键,具有完全相同的 keyCode
。 (13) 与 CTRL、ALT 和 Shift 共享相同的方式 keyCode
仍然无法被 KeyLocation
隔离像他们一样。有人对我如何解决这个问题有任何想法吗?或者这仅仅是 AS3 的限制?谢谢。
编辑:值得一提的是,我正在开发它以与 Adobe AIR 一起用作桌面应用程序。
最佳答案
很抱歉,这似乎是不可能的。
在自己尝试之后,numpad_enter 总是返回 KeyLocation = 0 (所以它是标准的,而不是左、右或小键盘)并返回键码 13,即返回键的键码。
虽然 Keyboard.NUMPAD_ENTER 被定义为 108,但是当您按下 numpad_enter 按钮时,它永远不会在内部由 flash 发送,它只会发送带有正常输入按钮值的 KeyboardEvent。
您可以尝试要求 Adobe 修复此问题 Adobe HelpCenter
关于actionscript-3 - Return 和 numpad Enter 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20323113/