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() 関数でコマンドされたように theTextInput 内にないのはなぜですか?

ご回答ありがとうございます

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 に答える