Flex 2: 2008年2月アーカイブ
先日 (2/23) の F-site にお越しくださった皆様、ありがとうございました。
それなりに支度したつもりではありましたが、プレゼンについては、不手際や反省すべき点が多々あったと思います。申し訳ありません。
お詫びに…というわけではありませんが、Flex のソースを含めた発表資料を公開します。
下記 URL をご覧ください。
スライド [*1]
http://labs.taiga.jp/presentationMaterial/F-site/fsite023demo01/slide/
スライド(ソース) [*1]
http://labs.taiga.jp/presentationMaterial/F-site/fsite023demo01/slide/srcview/
野中先生ペンギン サンプル
http://labs.taiga.jp/presentationMaterial/F-site/fsite023demo01/penguinSample/
野中先生ペンギン サンプル(ソース)
http://labs.taiga.jp/presentationMaterial/F-site/fsite023demo01/penguinSample/srcview/
設計書サンプル
http://labs.taiga.jp/presentationMaterial/F-site/fsite023demo01/sampleDesignSpecifications.zip
*1
会場でご覧いただいたスライドと、フォントが異なります。
ご了承ください。
個人的な思いこみではありますが、ステートに馴染めないというか嫌いな方が多いのではないかと思い、回数を分けてまとめることにしました。もちろん 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 で書いた方が可読性が高まり(個人的な意見ですが)、動的なステートが作成可能になるというメリットがオマケで付いてきます。 ただし、デザイナーと分業するようなプロジェクトでの使用はオススメできないという欠点もあるので、注意が必要です。(デザインビューでステートの確認ができなくなるため)
