2009-08-26 168 views
3

我正在为触摸屏Flex应用程序创建虚拟键盘,我试图通过调度KeyboardEvent来模拟按键。我已经编写了一个处理函数来监听事件,并据此采取行动。到目前为止这么好...但它开始变得复杂,因为我必须管理焦点textInputs(简单),在这些字段中的光标位置(不那么容易)等等。 现在,如果只有一种方法实际上派遣一个Flex事实上将解释为真正的按键的KeyboardEvent,所有这些问题都将消失......这可能吗?Flex:模拟按键

+0

类似的帖子我不知道我完全理解这里的控制流。因此,用户将触摸(即点击)键盘上的一个按钮。这将生成一个单击事件,您可以通过该事件生成一个KeyboardEvent,然后通知文本框添加该字符并重新定位光标。它是否正确?当你生成KeyboardEvent文本框不更新时,你遇到问题的地方是? – Dan 2009-08-26 15:39:05

+0

是的,这是正确的。我可以做到这一点,但通过使用KeyboardEvent处理程序...如果我只是派发事件(与TextInput集中)没有任何反应。 – 2009-08-26 16:09:06

+0

您将调度KeyboardEvent的哪个组件?我认为为了让事情正常工作,您需要在具有焦点的文本组件上分派事件,例如:myFocusedTextComponent.dispatchEvent(myNewlyCreatedKeyboardEvent) – Dan 2009-08-26 16:55:12

回答

4

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

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

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

作者:Alex Harui已经撰写了有关这一FlexCoders Post