【问题标题】:Flex: Simulate key pressFlex:模拟按键
【发布时间】:2010-11-22 22:37:57
【问题描述】:

我正在为触摸屏 Flex 应用程序创建一个虚拟键盘,并且我正在尝试通过调度 KeyboardEvent 来模拟按键。我编写了一个处理函数来监听事件并采取相应的行动。到目前为止一切顺利......但它开始变得复杂,因为我必须管理重点文本输入(简单),这些字段中的光标位置(不那么容易)等。 现在,如果有一种方法可以实际调度一个 Flex 将实际解释为真正的按键操作的 KeyboardEvent,那么所有这些问题都会消失……这可能吗?

【问题讨论】:

  • 我不确定我是否完全理解这里的控制流程。所以用户将触摸(即点击)键盘上的一个按钮。这将生成一个单击事件,从中生成一个 KeyboardEvent,然后告诉文本框添加该字符并重新定位光标。它是否正确?而你遇到问题的地方是当你生成键盘事件时,文本框没有更新?
  • 是的,没错。我可以做到这一点,但通过使用 KeyboardEvent 处理程序......如果我只是调度事件(以 TextInput 为焦点),什么也不会发生。
  • 您在哪个组件上调度 KeyboardEvent?我认为要让事情正常工作,您需要在具有焦点的文本组件上调度事件,即:myFocusedTextComponent.dispatchEvent(myNewlyCreatedKeyboardEvent)
  • 我的解决方案不起作用,请参阅下面彼得的回答。

标签: apache-flex keyboard key simulate


【解决方案1】:

TextInput 不使用 KeyboardEvent/TextEvent 进行文本输入,它使用与 Flash Player/Keyboard 交互的内部 Flash TextField 对象。

KeyboardEvent 用于启用发生的键盘事件通知。

要模拟键盘,您需要创建一个类,该类在接收到 KeyboardEvent 时会相应地修改 TextInput 的文本属性和光标位置。

Alex Harui 写了一篇关于这个FlexCoders Post的类似帖子

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2013-07-24
    • 2020-04-29
    • 2011-03-04
    • 2011-11-10
    相关资源
    最近更新 更多