カテゴリー別アーカイブ: Flex 3

Flex SDK 3.2 にアップデートするときの注意

具体的な現象は解説できませんが、Flex SDK 3.2 以前のバージョンの Flex SDK 3 で作成 / 動作確認した RSL や Module を Flex SDK 3.2 でビルドして動作させると、SystemManager 内でエラーが発生するケースがあるようです。

このとき、はじめて SDK 3.1 と 3.2 の SystemManager.as の diff を取ったのですが、2,000 行以上追記されていて驚きました。

中垣さんのブログにて解説されていますが、思ったより大きな更新なので、Flex 3.2 以前のバージョンで作った既存 Flex 3 アプリケーションの SDK をバージョンアップをするときには注意が必要です。( というより、上位互換は考えない方がよいと思います。 )

それなりに影響でると思うのですが、日本語で正式アナウンスがないのは正直辛いですね。

wonderfl で MXML

Flash 屋界隈では、大半の方が既にご存知かと思われる wonderfl ですが、リリース当初は AS3 のみ記述可能だった仕様が、いつの間にか MXML にも対応していました。

これさえあれば、簡単なサンプルのソースや画面はお手軽に作れますね。

こんな感じです。
http://wonderfl.kayac.com/code/1fa6fbd81da52780774cb3e6e018bd33f7ee027e

UIComponent.mx_internal::dispatchEventHook

mx.core.UIComponent クラスには、dispatchEventHook という UIComponent 自身を含む UIComponent を継承するすべてのクラスのイベントを拾う mx_internal かつ静的な関数プロパティがあります。

デバッグや開発中にこのプロパティを使うことによって、イベントフローが確認できて便利なので、ちょっとしたクラスを作成しました。

DispatchEventHookSample ( 画面とソース )
http://labs.taiga.jp/flex3/DispatchEventHookSample/
http://labs.taiga.jp/flex3/DispatchEventHookSample/srcview/
サンプルは何も表示されません FlashTracer などで出力状況を確認してください。

実装方法も少しマニアックです。
ローカル設定ファイル (DispatchEventHookSample-config.xml) に条件つきコンパイル用の定数 ( 以下 CONFIG::DEBUG) と、Mixin クラス (DispatchEventHooker.as) を定義しています。CONFIG::DEBUG の value が true のときのみ、イベントフローを出力させています。 (value を false にしてコンパイルすると、CONFIG::DEBUG コードブロックの内容は SWF に含まれなくなります )

参考: AKABANA – 条件付きコンパイル

targetPlayerMajorVersion

Flex Builder 3.0.0 を使って Flex 3.1 SDK を手動で導入(使用 SDK を設定)したり、Flex Builder 3.0.0 から 3.0.1 にアップデートしたりすると、< 3.1 SDK フォルダ>\frameworks\flex-config.xml に記述されている “{targetPlayerMajorVersion}” が機能しません。( Flex Builder 3.0.1 を新規にインストールした場合であれば問題ないようです。)

機能しなくなると、Graphics クラスなどの一部コードヒントが表示されなくなり地味に困るので、”{targetPlayerMajorVersion}” を “9” と、直打ち置換することをお勧めします。

参考:
AKABANA – Flex 3.1.0.2710

Flash OOP イベント第 3 部 ソース( taiga 担当分)

FxUG スピーカーズ。みんなで Fx の人文字を象っている…つもりです(笑)
撮影: nium:taka せんせい

先週の Flash OOP イベントに参加された皆様、お疲れ様でした。
「ギークな浴衣ガールもいるよ! FxUG !! 」…という偽りの(?)華やかさをアピールするため、クラスメソッドの吉村先生と某 C 社のナカヤさんに、第 3 部の「置物」として一緒に参戦していただいたのですが、いかがだったでしょうか。(特にナカヤさんには、イベントの前々日にカヤックの道家君に紹介してもらった…という強行かつデタラメな経緯があり、申し訳なさでいっぱいです。本当にありがとうございました。)

…というわけで、主犯(立案者)ではないのですが実行犯だった taiga です。こんばんは。

掲題の通り、私が担当した部分のサンプルソース( Flex Component Kit for Flash CS3 のサンプル)をアップしましたので、下記 URL よりご覧ください。

UIMovieClipSample (画面とソース)
http://labs.taiga.jp/flex3/UIMovieClipSample/
http://labs.taiga.jp/flex3/UIMovieClipSample/srcview/

ContainerMovieClipSample (画面とソース)
http://labs.taiga.jp/flex3/ContainerMovieClipSample/
http://labs.taiga.jp/flex3/ContainerMovieClipSample/srcview/

詳しい説明は上条さんのブログが分かり易いのでオススメです。

参考:
Flex Component Kit for Flash CS3 を使った Flex コンポーネントの開発

Genius Framework

先週、BeInteractive! の yossy 君に教えてもらったのですが、Spark project に Flex 用フレームワークがコミットされました。
http://www.libspark.org/browser/as3/GeniusFramework

仕事のノウハウを個人で貯め込んだのでしょうか、ざっとソースを眺めましたが、便利そうなクラスがたくさんありかつ、パッケージ構成も大変参考になります。案件に応じてメンテしながら使っていくと面白いかも知れませんし、今後にも期待できそうです。

実際使っていなので、細部まで見れていないのですが、友人数人と話した気になったことや意見を箇条書きで。

  • jp.seagirl.genius.views の ViewHelper.as が Canvas を継承している。
  • 同パッケージの ItemRenderer.as が、その ViewHelper.as を継承している。
  • ViewHelper というより ****Base という方が名前的に自然?(例:CanvasBase, PanelBase…)
  • 汎用性という意味では、ViewHelper は IMXMLObject 継承がベスト?
  • jp.seagirl.controls の SimpleButton.as はもっとシンプルに作れそう。

などなど…

実際に、開発者である yoshizu さんや、同業者の同志を交えて意見交換できたら面白そうです。

taiga.jp は 「 Genius Framework 」 を応援しています。

mx.states と戯れる #03

書きたいことは山積みなのですが、相変わらずスローペースな taiga です。おはようございます。

今回は、Transition のソースをアップしましたのでご覧ください。

StateSampleB (画面)
http://labs.taiga.jp/flex3/StateSampleB/

StateSampleB (ソース)
http://labs.taiga.jp/flex3/StateSampleB/srcview/

新規に生成した Transition インスタンスに対して、始点/終点のステート (fromState, toState) と、ステート変更時に掛けたいエフェクトインスタンス (effect) を設定し、Application の transitions プロパティに登録するというサンプルです。MXML だと仕組みが分かりづらいですが、AS にすると分かり易いですね。(コード量は増えますが)

参考 URL
mx.states.Transition (Flex 3)
http://livedocs.adobe.com/flex/3_jp/langref/mx/states/Transition.html

mx.states と戯れる #02

少し間が空いてしまいましたが、mx.states 話の続きです。
今回は、前回のエントリーで説明した内容のサンプルを用意しましたのでご覧ください。

StateSampleA (画面)
http://labs.taiga.jp/flex3/StateSampleA/

StateSampleA (ソース)
http://labs.taiga.jp/flex3/StateSampleA/srcview/

参考 URL
mx.states.AddChild (Flex 3)
http://livedocs.adobe.com/flex/3_jp/langref/mx/states/AddChild.html