【问题标题】:Differentiating between Return and numpad EnterReturn 和 numpad Enter 的区别
【发布时间】:2013-12-17 20:31:24
【问题描述】:

我在弄清楚如何区分键盘上的 Return 键和数字键盘上的 Enter 键时遇到了一些麻烦。

我已经成功地使用以下方法分隔了其他具有重复项的键,例如 CTRLALTShift

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),就像 CTRLALTShift 共享相同的keyCode,但仍不能像它们那样被KeyLocation 隔离。

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

编辑:值得一提的是,我正在开发它以与 Adob​​e AIR 一起用作桌面应用程序。

【问题讨论】:

    标签: actionscript-3 flash input actionscript air


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      您可以尝试要求 Adob​​e 解决此问题Adobe HelpCenter

      【讨论】:

        【解决方案3】:

        也许,您正在尝试使用独立的 FlashPlayer 吗? 您应该在浏览器上尝试使用。

        可以和KeyLocation.NUM_PAD分开。

        【讨论】:

        • 对不起。我可能应该提到,这个项目实际上是在开发 Adob​​e AIR 时考虑到桌面使用的。我有时会忘记这可能是一个因素。我将编辑主要帖子以包含该信息。
        猜你喜欢
        • 2014-02-18
        • 2013-06-02
        • 2014-03-24
        • 2014-05-01
        • 2014-05-24
        • 2011-07-22
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        相关资源
        最近更新 更多