Flexのしくみ

まずはさておき、簡単にFlexの動作原理を紹介したいと思います。
誤解を恐れずに言うならば、FlexJSPFLASH版だ!と言ってもあながち間違いじゃないと思われます。
拡張子にmxmlのついたMXMLで記述されたXMLファイルがクライアントから呼び出されると、Flexが動的にFLASH(swf)にコンパイルしてクライアントに返します。
これはJSPが動的にコンパイルされてHTMLとして返されるとの同じ理屈です。
言い換えると、Flexの実体はswfを吐き出すサーブレットだと言う事に気が付かされます。


Flexには様々なコンポーネントがあらかじめ用意されています。
フォーム類などはもちろんありますけど、GUIアプリでよく見かけるタブなんかもありますし、アラートウインドウも出す事なんか簡単に出来ます。
感覚的にはVBのプログラミングに近いものがあります。


これらのコンポーネントを定義するのがMXMLです。
このMXMLを学習するにはMacromediaチュートリアルが役に立つと思います。
http://www.macromedia.com/devnet/flex/articles/first_flexapp.html
http://www.macromedia.com/devnet/flex/articles/calculator.html
http://www.macromedia.com/devnet/flex/articles/containers.html
http://www.macromedia.com/devnet/flex/articles/datamodel.html


それともう一つどうしても学習しなければならないのがActionScriptです。
これ、実は私以前にトライしかけた事があったんですが、当時は言語としてなかなか非力で遊びにしか使えんなと言う印象しかありませんでした。
しかし、ActionScript2になってからは、かなりこの辺が改善されています。
特にJava屋さんから見ればかなりすんなり行けると思います。
このActionScriptの中身も上記チュートリアルで学習する事が出来ます。
私自身、ActionScriptをちゃんと理解している訳ではないので、変なコード書くかもしれませんが、ご了承下さい・・・未だにnullとundefinedの区別が付かないんだけど・・・なんでこうなの?(独り言)


クライアントとサーバ間の通信方法はWeb Service、普通のHTTP POST/GET、AFMといくつか方法があります。
AFMとはサブミットされたデータを独自のバイナリに変換してやり取りする方法です。もっと言うと、サーバーサイドで生成されたJavaBeanをAFMに乗せてクライアントに返します。その逆も然りです。この方法がFlex(というかFlash Remoting?)っぽくてお勧めです。もちろん、通常のHTTPもOKですから、既存のWebアプリを生かすなんて事も可能かもしれません。