(名古屋1人反省会)ただいま
名古屋の勉強会に行ってきました。そしてただいま。
名古屋って近いと思ってたけど、近鉄特急で2時間以上かかるとは。。。
次からは泊まりで行くべきだな。うん。
勉強会のちゃんとした報告は、WCANのサイトを見て頂くことにして、
個人的な復習と宿題をいくつかやっておきますね。
(名古屋1人反省会)mxmlでUIComponentを継承しないクラスの使用
mxmlでTextFieldなどのUIComponentを継承しないクラスをどうやって使うのか?
という質問がありましたので調べてみました。
とりあえず、
<mx:Application ・・・ xmlns:txt="flash.text.*" ・・・> <txt:TextField id="hoge" text="あああ" /> ・・・
では何も表示されません。
で、今のところよくわからんので、調べたら、ここにそれっぽい事が書かれてました。
UIComponentにたくさんのSpriteを追加する実験 - chisa-to あれこれ
なるほど。
UIComponentベースのコンポーネントクラスを作って、その中で使用するのが正しい作法のようです。
(名古屋1人反省会)スキンを変える&CSSでどの程度まで出来るのか?
「Flex2のデフォルトのスキンでは満足しない」という声は、第二回寺子屋(仮)でも挙ってましたが、
今回もでましたので少し調べました。
まず、Flexのデフォルトのスキンについて、
Adobeの上条さんという方が詳しく書かれてましたので、それを読みます。
http://weblogs.macromedia.com/akamijo/archives/2007/01/halo_aeon.cfm
次にSaqooshaに個人的に教えてもらった、スキンを変える方法について書かれたサイトを読みます。
上記サイトのサンプル
http://www.thebetterside.com/scrawl/ScrawlExample1.html
http://www.thebetterside.com/scrawl/ScrawlExample2.html
http://www.thebetterside.com/scrawl/ScrawlExample3.html
http://www.thebetterside.com/scrawl/ScrawlExample4.html
ちょっと読んでみたので、簡単に内容を紹介します。
Flexアプリケーションのスキンをイジる方法を実験したらしく、3ステージに分けて説明しています。
最初のステージでは、アプリケーションにCSS stylesとgraphicalスキンを追加する方法。
次のステージでは、プログラマティックな方法。
3つ目のステージでは、FlexFramework classesのサブクラスとして作成する方法。
を紹介しています。全てソース付きサンプルが用意されています。
ソースを読む
ScrawlExample1.mxmlは、無加工の素のmxml
ScrawlExample2.mxmlは、
Firstステージで説明されてる方法。
scrawl2.cssでは、フォントや色の指定がCSSで記述されている。画像はEmbedで指定されている。
ScrawlExample3.mxmlは、
次のステージのプログラマティックな方法。
mxml上では
scrawl3.cssでは、
ClassReference("hoge");が記述されている。"hoge"の部分にはパッケージ付きクラス名が指定されている。
そのクラスを見てみる。
全てのクラスが、mx.skins.Borderなど、mx.skins系のクラスをextendsしている。
overrideして、再定義している模様。
ScrawlExample4.mxmlは、
最後のステージの、コンポーネントを継承する方法。
mxml上では、
Applicationタグ内のxmlnsに作成したコンポーネントのパッケージを指定している事と
タグが自作コンポーネントに変わっている。
前のステージのClassReference()も使用しているが、ComboBoxやList,DataGridを継承したクラスを実装している。
・・・とこんな感じです。
スキンについてlivedocsでも見つけました
パッと見のイメージが大きく変わっていますが、
よく見ると、ComboboxもDataGridも外枠やスクロールバーは標準と同じ形をしています。
mxmlベースでの限界はこのあたりなのかも。。
(名古屋1人反省会)Flash8でAMFPHPをやる方法
私がお話しさせて頂いた中で、
Flex2において、AMFPHP+S2Flex2-componentsでAMFする方法をご紹介したのですが、
Flash8ではどうやるんだ?という質問を頂いたので、私が参考にしたサイトを紹介します。
http://www.loveloveheart.com/flash/flashremoting/amfphp.php
Flash側にFlash Remotingコンポーネントを入れる必要があります。
http://www.adobe.com/jp/products/flashremoting/downloads/components/
AS2は残念ながら私の守備範囲を超えますので深くは調べませんが、
この辺の情報が良いのではないでしょうか
http://www.transcw.com/blog/archives/000245.html
AMFPHP側(サーバー側)は、クライアントがAS2であってもAS3であっても同じなので、
AMFPHPについての記事は別途書きますんで、少しお待ち下さい。
ちなみにうちの会社でもFlash8+AMFPHPをガンガン使っていますので、業務でも十分使えると思います。
(名古屋1人反省会)mxmlで作るか、as3で作るか
livedocsに記事がありました。
MXML または ActionScript のどちらでコンポーネントを作成するかの決定
http://livedocs.adobe.com/flex/201_jp/html/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part5_ProgAS_155_1.html
以下引用。参考になるとおもいます。
* MXML コンポーネントと ActionScript コンポーネントはどちらも新しい ActionScript クラスを定義します。
* カスタム ActionScript コンポーネント内で実行できるほとんどのことは、カスタム MXML コンポーネント内でも実行できます。ただし、既存のコンポーネントのビヘイビアを変更したり、基本機能を既存のコンポーネントに追加したりする単純なコンポーネントの場合は、MXML 内で作成した方が早くて簡単です。
* 新しいコンポーネントが他のコンポーネントを含む複合コンポーネントで、Flex レイアウトコンテナのいずれかを使用して他のコンポーネントの位置とサイズを表現できる場合は、MXML を使用してコンポーネントを定義します。
* コンテナが子をレイアウトする方法など、コンポーネントのビヘイビアを変更する場合は、ActionScript を使用します。
* UIComponent のサブクラスを作成して、ビジュアルコンポーネントを作成する場合は、ActionScript を使用します。
* フォーマッタ、バリデータ、エフェクトなどの非ビジュアルコンポーネントを作成する場合は、ActionScript を使用します。
* コントロールにログのサポートを追加する場合は、ActionScript を使用します。詳細については、『Flex 2 アプリケーションの構築とデプロイ』のログ機能を参照してください。
ちなみに、
「ビヘイビア」は、トリガにエフェクトを組み合わせたものです。
トリガ:マウスクリック,フォーカスの移動,不可視状態から可視状態への変更などのコンポーネントに対して行われる操作を特に指す。
エフェクト:ターゲットコンポーネント上で一定時間 (ミリ秒単位) に発生する視覚的または聴覚的変化のこと。
エフェクトには、コンポーネントのフェード、サイズ変更、移動などがあります。