表1●外部データへの接続のためにFlashが用意している主なクラスやコンポーネント
表1●外部データへの接続のためにFlashが用意している主なクラスやコンポーネント
[画像のクリックで拡大表示]
図1●Flashに読み込ませるテキスト・ファイルの内容
図1●Flashに読み込ませるテキスト・ファイルの内容
[画像のクリックで拡大表示]
リスト1 ●LoadVars クラスを使って外部のテキスト・ファイルを読み込ませるActionScript のコード
リスト1 ●LoadVars クラスを使って外部のテキスト・ファイルを読み込ませるActionScript のコード
[画像のクリックで拡大表示]
図2●テキスト・ファイルを読み込ませるプログラムを実行したところ
図2●テキスト・ファイルを読み込ませるプログラムを実行したところ
[画像のクリックで拡大表示]

 プログラマの皆さん向けにFlashアプリケーション開発を紹介してきた本連載も今回が最終回です。前回までで,Flashが備えるスクリプト言語ActionScriptとFlashの開発環境について,他言語やほかの統合開発環境(IDE)と比較しつつ特徴を紹介してきました。他言語でのプログラミング経験があれば,相違点はあるものの,今までの経験を生かしてFlashアプリケーション(Flashムービー)の開発に臨めるということをご理解いただけたと思います。

 最終回である今回は,Flashムービーで,外部ファイルやサーバーとやり取りする方法について説明しましょう。見栄えや使い勝手の優れたユーザー・インタフェースとしてFlashを使いたいと考えている人は必見です。

外部のファイルを読み込ませてみよう

 Flash MX Professional 2004には,外部のファイルにアクセスするためのコンポーネントやクラスが標準で用意されています(表1[拡大表示])。これを見ると,Flashムービーを単体で完結させるのではなく,ユーザーにスムーズに情報を渡したり,受け取ったりするためのインタフェースとして活用してほしいというメーカーの意図が読み取れますね*1

 表1のクラス/コンポーネントはすべて,外部データのやり取りに便利なものばかりです。しかし,残念ながら誌面の都合上,すべては紹介できません。ここでは,データのやり取りで基本となるLoadVarsクラスと,今後のWeb環境でのデータやり取りにおいて標準となるであろうXML(Extensible Markup Language)形式データを読み込むのに便利なXMLConnectorコンポーネントの使用方法を紹介します。

 LoadVarsクラスは「変数名=値」を「&」でつないだURLエンコード形式のテキスト・ファイルを読み込むための機能を備えています。読み込まれたテキスト・ファイルは,LoadVarsクラスのインスタンスが解釈し,インスタンス内のプロパティ(変数)として格納します。

 実際にテキスト・ファイルを読み込ませてみましょう。URLエンコード形式で四つの変数とその値を列記したテキスト・ファイル(図1[拡大表示])を作成し,profile.txtという名前で新規に作成したフォルダに保存します*2。引き続き,Flashドキュメントを新規に作成し,同じフォルダに適当な名前を付けて保存してください。このFlashドキュメントには,[コンポーネント]パネルから[Button]をステージ上に配置し,それを選択した状態で[アクション]パネルを開いてリスト1[拡大表示]のコードを記述しておきます。

 リスト1のコードについて説明しましょう。まず,LoadVarsクラスのインスタンスを格納する変数loadLVを宣言し,新規インスタンスを作成します(1)。

 (2)は,ファイルを読み込んだときに実行する処理の定義です。LoadVarsクラスには,ファイルの読み込み完了時に呼び出されるonLoadイベント・ハンドラが用意されています*3。このイベント・ハンドラにはデフォルトでは処理が何も指定されていないので

onLoad = function(success) {処理};
のような形で,必要な処理を上書きして定義してやるわけです。onLoadイベント・ハンドラに指定する関数の引数successには,読み込み処理が正常に終了したかどうかを示すブール値(trueあるいはfalse)が渡されます。

 onLoadイベント・ハンドラの処理については,リストの(2)のコードと図1を見比べていただければ,おおよそ想像がつくと思います。traceステートメントを使って読み込んだ値を表示する際に,「this.id」「this.name」のように,「変数名=値」の形で読み込んだ外部データを,インスタンスであるloadLVのプロパティのように扱っている点に注目してください。LoadVarsクラスはURLエンコード形式で読み込んだデータを解析し,インスタンスのプロパティ名と値に置き換えるという機能を持っているのです。

 (3)はloadメソッドの引数にテキスト・ファイルへのパスを指定して,読み込む処理です。コードを記述したら,Flashの開発環境のメニューから[制御]-[ムービープレビュー]とたどってプレビューで動作を確認してみましょう。ボタンを押すと図2[拡大表示]のように外部テキスト・ファイル(profile.txt)の内容を読み込んで,プロパティと値のペアとして表示しているのを確認できます。


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

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