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バイト程度としている。ファイル・サイズが大きくなってしまう場合には,「分割ダウンロードなどの工夫をする」(ネットイヤーグループ 小松氏)ことも必要である。
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を単独販売するかどうかは未定だ。
|