Flex2が実際に利用可能なものなのか技術検証してみました。
Flex2について
Adobeのサイトをご覧いただければわかりますが、FlexはFlashをプログラマの立場から構築できるソフトウエアのことです。
EclipseプラグインもしくはGUIベースのFlex Builder2(30日間限定で無償体験できる/64,900円)、Flex Builder2にチャートの機能を追加した?Flex Builder2 with Charting(97,900円)、無償で開発できるCUIベースのFlex2 SDKがあります。
ダウンロードはこちらからでき、ダウンロードにあたりアカウントの登録(無料)が必要となります。
Flex Builder2とSDKの両方で作成する方法が紹介されているページがあります。これを見ながら、サンプルプログラムを作ってみるとよいと思います。
Flex Builder2の導入ガイド
Flex2 SDKの導入ガイド(FlashとFlexの関係についてもうまくまとめられています)
Flex2 SDKでゲームを作ってみる
実は、ダウンロードの際にホップアップブロッカーによってブロックされていてダウンロードが始まらないというオチがついてました。
Flex2でできることとその利点
ところでFlex2でなにができるのでしょうか?それはこのサンプルを見ていただくと良くわかります。まぁFlashだから当然という見方もありますが、HTML言語では出来ない限界を超えて、ほぼクライアントソフトと同等の表現が出来る可能性を見て取ることが出来ます。(Flash9でなければ背景色だけが表示されていて、何も表示されません。Ver.9へのアップグレードが必要なのですが、ダウンロードページに行ってもアップグレードできないという問題があるようです)
2004年にリリースされたJ2EEアプリケーションサーバの上で動作するため、既存のJ2EE環境の上に導入することができ、Flex Builderを使用することでVBやDelphiなどと同じようにRAD開発が可能となりそうです。
SDKとMXML
詳しくはこちらを見ると良くわかりますが、asファイルからswfを生成することはFlex2 SDKを利用して行うことができます。
Flexはただ単純にFlashファイル(SWF)を作成するものなので、動的にFlexを吐き出してユーザーに見せるといったことが出来ません。対して、Flex Data Services 2ではmxmlファイルからswfを動的に生成して見せることができます。(内部的には、XXX.mxmlがあるとするとXXX.mxml.swfというFlashファイルを呼び出すような仕組みになっていますが、キャッシュとして保持してクライアントに返すため、ファイルの実態としてswfが存在するわけではないようです)
Expressバージョンは無料で利用できるので、こちらでチェックすることが出来ます。
Ajaxのような非同期通信といえるのかどうか良くわかりませんが、Action Script3を利用してイベント発生時に通信を行うことでAjaxのような非同期ぽい通信を実現できるようです。
ところで、MXMLとは何のことでしょうか?
globe.toのサイトによれば
Macromedia Flex Markup Language. Macromedia Flexのプレゼンテーションを記述するためのXML言語。 対抗するものとして、サーバサイド製品LaszloのLZX、リッチメディアクライアントとしてはMicrosoft AvalonのXAMLがある。MXMLはSWFにプリコンパイルしてソースコードの保護を図ることができる。
とあります。つまり、Adobeに統合された今でもここに統合前の名残がのこっているようです。
Flex Data Services 2 Express
Windowsで先ほどのダウンロードページからFlex Data Services 2 Expressをダウンロードして使ってみよう。
インストールしたあと、スタート→プログラム→Adobe→Flex Data Services 2→Start Integrated Flex Server を実行するとWebサーバーが立ちあがります。
http://localhost:8700/samples/
ドキュメントルートはインストール先をC:\fds2にするとC:\fds2\jrun4\servers\defaultに設定されている。なぜかこの直下においてもプログラムを実行できませんでした。設定ファイルを見ていけばいいのかもしれませんが、実行する際には、samplesにおけばとりあえず実行できることを確認しました。
その他参考サイト
Flex User Group