図6●バインディング項目を追加する
図6●バインディング項目を追加する
[画像のクリックで拡大表示]
図7●バインディングの対象を指定する
図7●バインディングの対象を指定する
[画像のクリックで拡大表示]
リスト5 ●フォーム1 に記述するActionScript のコード
リスト5 ●フォーム1 に記述するActionScript のコード
[画像のクリックで拡大表示]
図8●外部XMLファイルを読み込ませて表形式で表示させたところ
図8●外部XMLファイルを読み込ませて表形式で表示させたところ
[画像のクリックで拡大表示]

 今回は,読み込みたいファイルそのものであるtbl_items.xmlを指定しましょう。すると,XMLファイルの構造を自動的に解析し,設定が行われます(図5(3))。設定が行われたスキーマを見ると,きちんとした階層が形成されていることがわかります。これでXMLConnectorコンポーネントの設定は完了です。

 続いて,読み込んだデータを,DataGridコンポーネントを使って表形式で表示させるように設定します。Flashのコンポーネントには,コンポーネントを連動させて扱うためのバインディングと呼ばれる機能が備わっていますから,この機能を利用しましょう。

 コンポーネントインスペクタの[バインディング]タブを選択し,[バインディングの追加]ボタン(図6[拡大表示](1))を押します。[バインディングの追加]ダイアログボックス(図6右下)が表示されますから,tbl_items:Arrayを選択し,[OK]ボタンを押します。すると,項目がリストに追加されます(図6(2))。

 追加された項目を選択してパネル下部の[bound to]欄を選択すると,[bound to]欄の右端に虫めがねアイコンが表示されます。これをクリックすると,[バインド]ダイアログボックス(図7[拡大表示])が表示されますから,選択項目を,どのコンポーネントのどの個所に結びつけるかを指定します。

 今回はmyDataGridに連結しますから,[コンポーネントのパス]から「DataGrid.<myDataGrid>」を選択し,[スキーマの場所]からDataGridコントロールに表示する内容を格納する「dataProvider」を選択して[OK]ボタンを押します。これで表示の準備も完了です。

 フォームが表示された時に読み込みを開始するように,IDE画面左側の[スクリーンアウトラインペイン]から[フォーム1]を選択し,[アクション]パネルを開いてリスト5[拡大表示]のコードを記述します。triggerメソッドは,与えられた設定でXMLファイルを読み込むためにXMLConnectorコンポーネントが用意しているメソッドです。

 プレビューで動作を確認してみましょう。XMLConnectorコンポーネントによって外部XMLファイルが読み込まれ,バインディング機能によってDataGridコンポーネントに渡されたデータが表示されることを確認できます(図8[拡大表示])。なお,XMLConnectorコンポーネントは,実行時には表示されません。

 XML形式でデータのやり取りをするアプリケーションを開発する場合に,少ない工数で見栄えの良いアプリケーションの作成が期待できますね(カコミ記事「フィールドの並び順まで指定するには」を参照)。

☆            ☆            ☆

 Flash MX Professional 2004とActionScriptを使用したアプリケーション開発について,全6回にわたって紹介してきました。正直なところ,ActionScript 2.0や各種のコンポーネントは,過渡期の段階にあり,他言語に比べると不安定な動作やバグと思われるような動作を含んでいることもあります。しかし,ほかの多くの言語が通ってきたように,バージョンアップを重ねるごとに,より良い言語になっていくことは間違いありません。

 筆者は,今後のWebサービスを中心としたアプリケーション,特にエンドユーザーが直接操作するインタフェースの分野に関しては,Flashが選択肢の第一候補になってくるのではないかと考えています。皆さんも,この可能性を秘めた荒削りな言語に触れてみませんか? そして,より面白く,より役に立つコンテンツの作成を目指してみましょう。


フィールドの並び順まで指定するには


図A●XMLConnectorコンポーネントのスキーマを手作業で修正しているところ
[画像のクリックで拡大表示]

 XMLConnectorコンポーネントとDataGridコンポーネントを組み合わせて外部XMLファイルを表示するのはとても簡単ですね。しかし,図8をよく見てください。何かおかしくありませんか? 実はフィールドの並び順が元のテーブル(図3)とは逆になってしまっています。

 元のテーブルの並び順に合わせるには,XMLConnectorコンポーネントに自動で読み込んだスキーマ設定を直接手作業で逆順に修正する方法(図A[拡大表示])や,XMLConnectorコンポーネントとDataGridコンポーネントの間にDataSetコンポーネントを仲介させ,DataSetコンポーネントでフィールドの並び順や表示/非表示を設定する方法があります。

 DataSetコンポーネントは,こうしたスキーマ設定のほかに,修正履歴の管理や動的な新規レコードの追加や削除が可能です。さらに,各種リゾルバ・コンポーネントと組み合わせることで,ADO .NETのように自動的にデータを更新するステートメントを生成することもできます。データを細かく管理したいときに核になるコンポーネントと言えます。誌面では紹介できませんでしたが,興味のある方は,Flashのオンライン・ヘルプや書籍を参考に調べてみてください。


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

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