2

我有下一个应用程序标题:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" creationPolicy="all" enterState="focusManager.setFocus(employeeIDTextInput);">

public function init():void {
    focusManager.showFocusIndicator = true;
    focusManager.showFocus();
    focusManager.setFocus(theTextInput);
}

并且 TextInput 处于默认状态。但是当应用程序启动时,TextField 被聚焦(TextField 周围有一个蓝色矩形),但光标不在 TextField 内。但是在下一个状态中,我有 anotherTextInput ,当您在状态之间切换时,两个文本输入都按照您的预期正确聚焦,并且光标正确出现在每个文本输入中。

<mx:State name="secondState" enterState="{focusManager.setFocus(anotherTextInput)}">

我的问题是,为什么当应用程序启动时光标不在 init() 函数上的命令的 TextInput 内?

谢谢您的回答

4

1 回答 1

2

我解决了,这个问题是因为这是一个组件,并且是从主菜单调用的,并且在组件出现在屏幕上之前创建菜单的那一刻,就调度了 creationComplete 事件。我所做的是附加一个事件处理程序来显示事件,就是这样。

<mx:Canvas width="100%" height="100%" xmlns:mx="http://www.adobe.com/2006/mxml" 
       creationComplete="init()" creationPolicy="all"
       show="focusManager.setFocus(employeeIDTextInput)"
       >

非常感谢每一个问我问题的人...

于 2012-12-27T22:16:18.310 回答