1

アプリケーションのフレックス状態に問題があります。私が探しているのは、アプリケーションの作成が完了し、サーバーからユーザーロールguest / user / superUser(ユーザー名とパスワードに基づく)を取得し、その情報に基づいてクライアント側の状態を設定することです。私の.mxmlクラスには、その状態に基づいた特定のグラフィック要素を含める必要があります。プロジェクトのアプリケーションレベルで定義された状態に基づいて要素を含めるという問題に直面しています。状態を必要とする各.mxmlファイルで状態を定義する必要がないようにしています。

これはおそらく私が見落としている簡単なことだと思います。あるいは、これを行うためのより良い方法があるかもしれません。入力例は非常に役立ちます。

これが現在の状態を返すことを私は知っています

Application.application.currentState;

しかし、私はほとんど「人口」を探しています

<mx:states>
    <mx:State name="state1"/>
</mx:states>

アプリケーションで定義された状態からのすべての.mxmlファイルの

4

1 に答える 1

0

動的状態を探している場合-これ解決策です(最初の2つの状態-defaultbig-はコンパイル時に追加されます。3番目の状態Bang-a-Gongは実行時に追加されます):

private function init():void {
    // Create a new state and give it a name.
    var stateBang:State = new State();
    stateBang.name = 'Bang-a-Gong';

    // Set the overrides with an array of AddChild, AddItems,
    // RemoveChild, SetEventHandler, SetProperty, and SetStyle
    stateBang.overrides =
        [ new SetProperty( btn, "label", "Bang-a-Gong" ),
          new SetProperty( btn, "height", "150" ),
          new SetProperty( btn, "width", "300" ),
          new SetStyle( btn, "fontSize", "22" ),
          new SetStyle( btn, "fontWeight", "bold" ),
          new SetStyle( btn, "color", "#FF0000" ) ];

    // Add our new state to the available states of this component.
    this.states.push( stateBang );

    // Just for kicks lets add a transition for this state.
    var transition:Transition = new Transition();
    transition.toState = 'Bang-a-Gong';

    // Create a new transition effect.
    var resize:Resize = new Resize( btn );

    // Create an composite effect, either: Sequence or Parallel.
    var sequence:Sequence = new Sequence();

    // Add our resize effect.
    sequence.addChild( resize );

    // now add our composition effect to the transition we created.
    transition.effect = sequence;

    // Push our new transition into the transitions array for this component.
    this.transitions.push( transition );
}

別のケースでは、私が正しく理解していれば、メインアプリケーションでオブジェクトを作成し、すべての子コンポーネントから。を介してそれにアクセスする必要がありますFlexGlobals.topLevelApplication

子の状態を変更する場合は、状態がすでに定義されているインスタンスを1か所に配置し、後でそれらを子コンポーネントにコピーする必要がありますが、それらがすべてカスタムロジックである場合はどうでしょうか。

それで、それが助けになるなら、私に知らせてください。

于 2010-09-19T17:23:31.963 に答える