GUI部品の独自開発が必須

 ほとんどのユーザー企業で聞いた苦労した点は「チェック・ボックスなどのGUI部品を自作しなくてはならない」,「デバッガが貧弱」という意見だった。

 Flash5では,GUI部品開発の王道はなかった。ネットイヤーグループやトレイダーズ証券は,アニメーションでチェック・ボックスやコンボ・ボックスを作成し,それらに対してActionScriptで動作を記述して対応した。

 デバッグでも苦労している。「1行ずつ変数などの内容を出力させてデバッグした」(イ・システム アシスタントマネージャー 宮里 勇賜氏),「サーバーとFlashのやり取りをデバッグする環境がなくて苦労した」(セカンドファクトリー クリエイティブ セクション デザインエンジニア 杉下 高仁氏)という。

 マクロメディアも「これまでGUI部品の開発などにユーザーはリソースを割かれていた」(田中氏)と,開発上の問題点を認めている。今回取材した企業はFlash5を使って開発しているためこういった点に苦労しているが,GUI部品やデバッグ環境は,最新版Flash MXで改善されている(別掲記事参照)。

 このように,GUI部品があれば,HTMLを使ったデザインに近い画面を開発するのは容易である。ただし,GUI部品を作る手間を考えた際に,別の手段で開発工数を減らすことも検討すべきだ。「Flashの得意な部分を意識して開発する」(ネットイヤーグループ SIPS事業部 エンゲージメントマネジャー 小松 徹氏)ことが重要になる。ネットイヤーグループは,プルダウン・メニューの代わりにメニューを選択すると右側にさらに階層を表示していくカスケード・メニューにする,ラジオ・ボタンの代わりにON/OFFという画像を使う,という開発方法をソニー銀行のアドバイスエンジンで採用している。

プログラム管理を考慮する

図3●ActionSctiptの管理を考える
Flashでは,レイヤーやフレームにActionScriptを自由に配置できる。このため,(1)ActionScript専用レイヤーを作り,そこにスクリプトを配置する,(2)#includeアクションを活用し,テキスト・ファイルにスクリプトを記述する――といった工夫が必要だ。

 Flashでは,「レイヤー」,「フレーム」にFlashで作成するアニメーションやActionScriptで書いたプログラムを埋め込む。レイヤーは,もともとFlashがアニメーション開発環境であるため,例えば背景と人物を別々のレイヤーに記述する,といった使い方をするためのもの。また,フレームはテレビと同様,時間軸に対して1フレームずつアニメーションを表示する,という考え方だ。

 そこでまず,ActionScriptを使う場合,専用のレイヤーを用意し,そこにプログラムを記述したほうがよい(図3[拡大表示])。複数のレイヤーを使い,それぞれのレイヤーごとにプログラムを記述すると,プログラムの所在が分からなくなる可能性があるからである。

 このほか,ActionScriptの「#includeアクション」を使い,外部テキスト・ファイルからプログラムを読み込むようにすると効果的だ。「#includeアクションで,共通プログラムを外部テキスト・ファイルから読み込んでいる」(セカンドファクトリー 杉下氏)。こうすれば,プログラムの変更が容易になる。

ファイル・サイズに留意

 ブロードバンド・ユーザーが増えているとはいえ,ファイル・サイズは注意が必要だ。エイベックスは当初,トップ・ページを「ホーム」,「アーティスト」,「ショッピング」,「スペシャル」という4つの分野をまとめて1つのFlashで作成,横スクロールさせる構造だった。しかし「56kビット/秒のユーザーが2分くらい待たされていた」(松田氏)という反省から,「Flashを分野ごとに分割し,それぞれ遅くとも30秒以内に読み込めるようにした」(同氏)。

 トレイダーズ証券はファイル・サイズの目安を100Kバイト程度としている。ファイル・サイズが大きくなってしまう場合には,「分割ダウンロードなどの工夫をする」(ネットイヤーグループ 小松氏)ことも必要である。

(吉田 晃=akyoshid@nikkeibp.co.jp)



Webアプリ開発を意識したFlash MX

 マクロメディアが3月に発表した「Flash MX」は,Webアプリケーション開発者向けに機能を強化している。主な強化点は,これまで不足していると開発者から指摘されていた「GUI部品の充実」,「デバッグ環境の整備」――である。

GUI部品を標準で提供

 GUI部品としては,標準でチェック・ボックス,ラジオ・ボタン,送信ボタン,プルダウン・メニュー――などを提供している(写真A[拡大表示])。これまでは,FlashのアニメーションでGUI部品を作成し,そこにActionScriptを記述して自作するしかなかった。これらのGUI部品が標準で提供されれば,開発生産性が高くなるのは明らかだ。Flash開発者は,GUI部品をドラッグ・アンド・ドロップし,プルダウン・メニューならば表示する項目などのプロパティなどを設定すればよい。

 さらに,同社が運営するMacromedia Exchange(http://dynamic.macromedia.com/bin/MM/exchange/main.jsp?product=flash)からGUI部品を追加することもできる。

デバッグ環境を強化

 デバッグ環境としては,ブレーク・ポイントを指定し,ActionScriptの行ごとに変数の内容を確認可能になった(写真B[拡大表示])。Flash5では,ActionScriptが用意するtraceアクションをプログラムに埋め込み,変数の内容を出力することができた。ただし,この作業は「ログにいったん出力するようなもの」(マクロメディア MXコンサルタント 上条 晃宏氏)で確認が煩雑だった。また,「シンタックス・チェッカー」も新たに追加した。これは,プログラムの文法をチェックする機能である。for( )などで,カッコの入力忘れなどを防ぐことができる。

 このほかプログラミング・エディタに,「コード・ヒント」や「リファレンス」を追加している。例えば,コード・ヒントではボタンに対して「on( 」とカッコまで入力すると,「press」,「rollOver」などの,onに対して利用できるアクションを表示する,という具合だ。Visual Basicなどを利用していた開発者にはなじみ深いだろう。

 アプリケーション・サーバーとの連携も強化している。例えば,ColdFusionの独自タグで記述されたアプリケーションをFlash MXから直接呼び出すことが可能になった。これまではHTTPでGET/POSTを使ってアプリケーションを呼び出していたが,ActionScriptのアクションを呼び出す構文と同様のプログラミングでサーバー・アプリケーションを容易に呼び出せる。

 この連携機能は「Flash Remoting」と呼び,ColdFusion MXおよびJRunに付属する。Flash RemotingをFlash MXにインストールすると,写真Bのようなサーバーとの通信デバッガも追加される。.NETやJavaで作ったアプリケーションにも対応するが,Flash Remotingを単独販売するかどうかは未定だ。

写真A●Flash MXの開発画面
右下がFlash MXで追加されたGUI部品。このほかにもマクロメディアのサイトから追加することができる。
 
写真B●Flash MXのデバッグ画面
Flash Remotingをインストールし,サーバーとの通信のデバッグをしている。
Flash RemotingはColdFusion MXおよびJRunに付属する。