0

これが起こっていることです:私は次のタブを持つTabnavigatorを持っています:

<s:NavigatorContent width="100%" height="100%" label="Add a logo" includeIn="loggedin">

<components:LogoSearch />

</s:NavigatorContent>

次のコードで状態を「loggedin」に変更すると、次のようになります。

protected function Login_getStateHandler(event:Event):void
        {
            this.currentState = "loggedin";
        }

navigatorContentは、コンポーネント「LogoSearch」を表示しますが、デザインビューでは表示しませんが、状態を切り替えると表示されます。

「LogoSearch」で定義された状態はなく、表示されるはずです...?

タブナビゲーターを「loggedin」だけでなく「normal」にも含めてから、状態を「loggedin」に変更すると、コンポーネント「LogoSearch」が表示されます。「loggedin」にタブナビゲーターのみを表示し、状態を「loggedin」に変更すると、コンポーネント「LogoSearch」が表示されません。

なぜこれが起こっているのか考えていますか?私はフレックスのプロではないので、遠慮なく私の間違いを指摘してください。ありがとう。


Tianzhen Linによって提案されたように、invalidateDisplayList()とinvalidateProperties()を操作してみました。まだ何も表示されていません。

<s:NavigatorContent width="100%" height="100%" label="Add a logo" includeIn="loggedin" id="AddLogoTab" >

    <s:Label text="test" id="test" />

</s:NavigatorContent>

と :

protected function Login_getStateRegisterHandler(event:Event):void
        {
            this.currentState = "register";
            test.invalidateDisplayList();
            test.invalidateProperties();
            test.validateNow();

            AddLogoTab.invalidateDisplayList();
            AddLogoTab.invalidateProperties();
            AddLogoTab.validateNow();
        }

何をしても、状態が変更された後、NavigatorContentのコンテンツは表示されません。

4

1 に答える 1

0

発生している問題を絞り込むためincludeIn="loggedin"に、コードを削除することから始めることができます。これにより、少なくともコンポーネントが適切に表示されるようになります。

次に、Login_getStateHandler関数にブレークポイントを設定し、関数が呼び出されるかどうかを確認します。そうでない場合、ハンドラーが呼び出されないのは配線のどこかです。ここにさらにコードを投稿して、ヘルプを得ることができます。

于 2012-08-11T14:52:24.087 に答える