区分Return和numpad Enter

时间:2013-12-02 07:40:40

标签: actionscript-3 flash input actionscript air

我在解决如何区分键盘上的 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

然而,在尝试类似的事情时,使用以下方法从我的 Return 键中分离我的 Enter 键:

if(e.keyLocation == KeyLocation.NUM_PAD)

Flash坚持将它们视为来自KeyLocation.Standard,同样值得一提的是,Flash将两个键视为完全相同的键,并以相同的方式使用完全相同的keyCode(13)那个 CTRL ALT Shift 共享相同的keyCode但仍然无法被KeyLocation隔离他们可以。

有没有人对如何解决这个问题有任何想法?或者这仅仅是AS3的限制?感谢。

编辑:值得一提的是,我正在开发此功能,以便与Adobe AIR一起用作桌面应用程序。

3 个答案:

答案 0 :(得分:1)

很抱歉,这似乎不太可能。 在为自己尝试之后,numpad_enter总是返回KeyLocation = 0(因此它是标准的,而不是左,右或小键盘)并返回键码13,即返回键的键码。

Keyboard.NUMPAD_ENTER被定义为108,但是当你按下numpad_enter按钮时,它永远不会被flash内部发送,它只会发送带有正常输入按钮值的KeyboardEvent。

您可以尝试要求Adobe修复此Adobe HelpCenter

答案 1 :(得分:0)

也许,您是否尝试使用独立的FlashPlayer? 您应该尝试使用浏览器。

它可以与KeyLocation.NUM_PAD分开。

答案 2 :(得分:0)

我已经确认在mac上,AIR运行时不区分RETURN和numpad ENTER键。它们产生相同的输出,所以我们搞砸了。一个相当不幸的疏忽,但现在使用小型笔记本电脑,无论如何都不会看到两个键。