リスト2 ●受け取った値を埋め込んだ文を出力するPHP スクリプト
リスト2 ●受け取った値を埋め込んだ文を出力するPHP スクリプト
[画像のクリックで拡大表示]
リスト3 ●PHP スクリプトにパラメータを渡し,その結果を受け取るActionScript のコード
リスト3 ●PHP スクリプトにパラメータを渡し,その結果を受け取るActionScript のコード
[画像のクリックで拡大表示]
リスト4 ●Flash に読み込ませるXML ファイルの内容
リスト4 ●Flash に読み込ませるXML ファイルの内容
[画像のクリックで拡大表示]
図3●リスト4のXMLファイルをテーブル形式で表したイメージ
図3●リスト4のXMLファイルをテーブル形式で表したイメージ
[画像のクリックで拡大表示]
図4●XMLConnectorコンポーネントのプロパティを設定する
図4●XMLConnectorコンポーネントのプロパティを設定する
[画像のクリックで拡大表示]
図5●読み込ませるXMLファイルのスキーマを設定する
図5●読み込ませるXMLファイルのスキーマを設定する
[画像のクリックで拡大表示]

サーバーに対してデータを送受信する

 LoadVarsクラスはデータの送受信をする機能も備えています。例えばWebサーバー上に,HTTP POSTメソッドでパラメータを受け取り,その値に応じてURLエンコード形式で値を返す単純なPHPスクリプト(リスト2[拡大表示])があったとします*4。スクリプト・ファイル(hello.php)がhttp://localhost/にある場合,phpスクリプトに値を渡し,その結果を受け取るコードは,リスト3[拡大表示]のようになります。

 まず,送信用と受信用にLoadVarsクラスのインスタンスsendLVとloadLVをそれぞれ生成します(1)。次に,PHPスクリプトに送る値を送信用インスタンス(sendLV)に設定します。値は,送信用インスタンスに,「インスタンス.変数名=値」という形で記述します(2)。複数の変数に値を渡したい場合には,この記述を繰り返します。

 (3)は,受信用インスタンス(loadLV)のonLoadイベント・ハンドラの定義です。今回はリスト1に少し手を加えて,引数successの値を利用して,通信に成功したか,失敗したかを判定して表示するようにしています。

 最後に,送信用インスタンスのsendAndLoadメソッドの引数として,送信先URL,結果を受け取るLoadVarsクラスのインスタンスへの参照,送信方法を指定します(4)。

 実行してみると,FlashのIDEの出力パネルに「吉岡 梅さんこんにちは。」と表示されます。Flashアプリケーションが渡した値をphpスクリプトで受け取り,その値から生成した結果をもう一度Flashアプリケーションが受け取っているわけです。サーバー側のプログラミングの知識があれば,URLエンコード形式の表記とLoadVarsクラスを組み合わせて,サーバーと動的なデータのやり取りを行うFlashアプリケーションも作成できますね。

XMLファイルを読み込ませる

 最後に,XML形式のファイルを読み込んでみましょう。XMLはWebサービスの基盤となる技術であり,OSやプラットフォームに依存することなくインターネット上でデータをやり取りできます。そのため,近年では多くのアプリケーションがデータをXML形式で扱えるようになってきているのはご存じの通りです。

 Flashは,外部XMLファイルを読み込むためのコンポーネントとしてXMLConnectorを用意しており,コードをほとんど記述せずにXMLファイルを読み込むことができます。

 今回は,XMLファイルをFlashムービーに読み込ませて,表形式で表示させてみましょう。リスト4[拡大表示]のXMLファイルを作成して,tbl_items.xmlという名前で先ほど作成したフォルダに保存してください。ちなみに,リスト4のXMLファイルは,テーブル形式で表すと図3[拡大表示]のような形になります*5

 次にFlashで,[フォームアプリケーション]形式の新規ドキュメントを作成し,先ほどのXMLファイルと同じフォルダに保存します*6。Flashドキュメントには,[フォーム1]に[コンポーネント]パネルからXMLConnectorコンポーネントと,DataGridコンポーネントの二つのコンポーネントを配置しておきます。DataGridはデータを表形式で表示させるためのコンポーネントです。

 [ツール]パネルで[自由変形ツール]を選んでDataGridコンポーネントの大きさを適当に調整したら,コンポーネントのそれぞれに[プロパティ]パネルでインスタンス名を付けておきましょう。XMLConnectorコンポーネントはmyXMLConnectorというインスタンス名に,DataGridコンポーネントはmyDataGridというインスタンス名にしておいてください。

 ここからはコンポーネントのプロパティをFlashのIDEで設定する作業となります。なんだかVisual Basicみたいですね。まず,myXMLConnectorの[プロパティ]パネルの[パラメータ]タブを選択して,[URL]欄に読み込ませるXMLファイルの名前(tbl_items.xml)を指定し,[direction]には受信を表すreceiveを設定します(図4[拡大表示])。

 次に,myXMLConnectorを選択した状態で,メニューから[ウィンドウ]-[開発パネル]-[コンポーネントインスペクタ]とたどります。[コンポーネントインスペクタ]は,コンポーネントに関してより詳細な設定を行うためのパネルです。

 [コンポーネントインスペクタ]パネルの[スキーマ]タブを選択すると,「params:XML」(送信用設定)と「results:XML」(受信用設定)の二つの項目が表示されています(図5[拡大表示])。XMLConnectorコンポーネントでは,読み込むXMLファイルの構造の情報をあらかじめ指定して,それに従ってXMLファイルを解釈し,扱うことができます。

 XMLファイルがあまりよくわからない,という方もご安心ください。外部のXMLファイルを指定することで,その構造を自動的に読み取り,設定することも可能です。「results:XML」(図5(1))を選択して,右側の[サンプルXMLファイルからスキーマの読み込み]ボタン(同(2))をクリックしてください。ファイル選択ダイアログボックスが表示されますので,読み込みたいXMLファイルと同じ構造のサンプル・ファイルを指定します。


吉岡 梅(よしおか うめ)
山梨県在住のソフトウエア開発者。

◆下記のURLから,サンプル・プログラムを無償ダウンロードできます
http://software.nikkeibp.co.jp/software/download/down04c.html#200409