あなたの例には「FocusEvent」がリストされているので、Flex ソリューションに焦点を当てます。これは Flash AS3 クラスではありません。
Flex がそれ自体でフォーカスを管理しようとしており、それがフォーカスを設定しようとする試みを台無しにしていることに賭けます。ただし、これを回避する方法はいくつかあります。
Flex はあなたに逆らおうとしていますか?
まず、FocusManager クラスまたは UIComponent setFocus メソッドのいずれかを使用することをお勧めします (これは、具体的に何をする必要があるかによって異なります。FocusManager を使用すると、複数のオブジェクトをターゲットにできますが、setFocus メソッドの方がはるかに簡単です)。ステージ。フォーカス。これには、Flex コンポーネント システム内でネイティブに機能するという利点があります。
正しいイベントを聞いていますか?
それができない場合は、探している FocusEvent のターゲットがテキストフィールドでもテキストフィールドの子でもないことを確認してください。(正気のために)。それでもうまくいかない場合は、イベントが 1 回だけディスパッチされていることを確認してください。次に、FocusEvent の代わりに MouseEvent.CLICK を使用してみます。
他のすべてが失敗しましたか?
残念ながら、Flex は多くの場合、完璧にはほど遠いものです。「正しい順序」でイベントを発生させないという事実を回避するために setTimeout を使用しなければならないことがあります。また、TextArea の TextWidth プロパティが正しい数値を返しません。回避策
private function myListener( event:FocusEvent ):null
{
setTimeout( function(){ editfield.setFocus(); }, 35 );
}