mx.states と戯れる #01

| | コメント(0) | トラックバック(0)

個人的な思いこみではありますが、ステートに馴染めないというか嫌いな方が多いのではないかと思い、回数を分けてまとめることにしました。もちろん MXML を使用しない方針で進めていきたいと思います。

今回は、まず基本説明から

  • UIComponent クラスには、states という配列プロパティが用意されており、この配列プロパティに対してステート情報( State クラスのインスタンス)を定義(追加)します。
  • ステート情報は、UIComponent クラスを継承しているアプリケーション/コンポーネントクラスのルート (this) に対して定義(追加)できます。
public function RootMXMLClass()
{
    …
    this.states = [StateInstanceA, StateInstanceB, StateInstanceC, … ];
}
  • ステート情報の内容は、State.overrides という配列プロパティに定義(追加)します。
  • State.overrides プロパティには、AddChild, RemoveChild などの mx.states パッケージクラスのインスタンスを定義(追加)することができます。( State, Transition クラスを除く)
  • State.name プロパティで定義した名前が RootMXMLClass.currentSate プロパティで利用されます。
public function RootMXMLClass()
{
    …
    var lState    :State    = new State();
    var lAddChild :AddChild = new AddChild();
    var lButton   :Button   = new Button();
    …
    lAddChild.target = lButton;
    lState.name = 'hoge';
    lState.overrides = [lAddChild, … ];
    this.states = [lState, … ];
}

以上のポイントさえ抑えてしまえば、AS で書いた方が可読性が高まり(個人的な意見ですが)、動的なステートが作成可能になるというメリットがオマケで付いてきます。 ただし、デザイナーと分業するようなプロジェクトでの使用はオススメできないという欠点もあるので、注意が必要です。(デザインビューでステートの確認ができなくなるため)

トラックバック(0)

このブログ記事を参照しているブログ一覧: mx.states と戯れる #01

このブログ記事に対するトラックバックURL: http://blog.taiga.jp/admin/mt-tb.cgi/18

コメントする

このブログ記事について

このページは、taigaが2008年2月12日 19:30に書いたブログ記事です。

ひとつ前のブログ記事は「[告知] F-site で喋ります」です。

次のブログ記事は「F-site 発表資料」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。