Adobe Flashのプログラミング言語であるActionScriptはバージョン3.0となり、非常に大きな進化を遂げました。パフォーマンスは向上し、機能セットも充実し、より使いやすく洗練されたプログラム言語となっています。本書「Essential ActionScript 3.0」は、「Essential ActionScript 2.0」をもとに、ActionScript 3.0向けに内容をバージョンアップしたものです。オブジェクト指向プログラミングや新しいFlash Player API(displayプログラミング)を中心に、新しい特徴であるDOMベースイベントアーキテクチャ、E4X、名前空間などについても解説しています。もちろん。サンプルコードも用意しています。この記事では、その一部を紹介します。なお、章全体をPDFで配布していますので、ぜひ目を通してください。
本書は、世界各国の大手書店やオンラインブックストアで入手することができます。また、Safari Books Onlineでは、オンラインで閲覧することが可能です。詳しい情報は、O'Reilly storeにて。
当書籍をベースにしたセミナーが2008年1月15日に日本でも開催されました。セミナーレポートはこちら
Essential ActionScript 3.0 © 2007 Colin Moock. Reproduced by permission of O'Reilly Media Inc. All rights reserved.
ActionScriptの主な効果の1つは、スクリーン上にオブジェクトを表示することです。そのため、Flashプラットフォームには、グラフィックコンテンツを作成/操作するためのツールが幅広く用意されています。これらのツールは2つのカテゴリに分けることができます。
Flashランタイム display API:インタラクティブなビジュアルオブジェクト、ビットマップ、ベクターコンテンツと連携するクラスのセット。
ユーザーインターフェイス・コンポーネント:FlexフレームワークUIコンポーネントセット、これは最高のdisplay APIで作成されたユーザーインターフェイスウィジェットのコレクションで、カスタマイズすることもできます。そして、FlashのUIコンポーネントセット。これは、ファイルサイズも小さく、メモリ消費も低いユーザーインターフェイスウィジェットのコレクションです。ただ、FlexフレームワークUIコンポーネントセットの方が機能的にはより充実しています。
display APIはすべてのFlashランタイムに直接組み込まれるので、すべてのSWFファイルで有効です。また、display APIは高度にカスタマイズしたユーザーインターフェイスの作成や、モーショングラフィックやゲームなどでよく見かけるビジュアルエフェクトの作成に向いています。第20章では、このdisplay APIについて詳しく解説しています。
ActionScriptでイベントをディスパッチし、そのターゲットなるオブジェクトがディスプレイヒエラルキーに属していない場合、そのターゲットはイベントが通知される唯一のオブジェクトとなります。たとえば、Soundオブジェクトのサウンドの再生が終了した時に、関連したSoundChannelオブジェクトにEvent.COMPLETEイベントをディスパッチするとします。そのSoundChannelオブジェクトがdisplayヒエラルキーに属していない場合、イベントが起きたことを検知できるのはSoundChannelオブジェクトのみとなります。
逆に、ActionScriptでイベントをディスパッチし、そのターゲットとなるオブジェクトがディスプレイヒエラルキーに属している場合、そのオブジェクトとそのオブジェクトが属するディスプレイヒエラルキーの祖先オブジェクトすべてに対してイベントが起きたことが通知されます。たとえば、Spriteオブジェクトの中にTextFieldオブジェクトが含まれていて、ユーザーがTextFieldオブジェクトをクリックした場合、TextFieldオブジェクト(イベントターゲット)とSpriteオブジェクト(イベントターゲットの祖先オブジェクト)の両方に対してクリックされたことが通知されます。
このActionScriptのヒエラルキー的イベントディスパッチシステムでは、すべてのディスプレイオブジェクトコンテナは、その子孫ディスプレイオブジェクトをターゲットとするイベントを扱うイベントリスーナーを登録することが可能です。たとえば、ダイアログボックス(Spriteオブジェクト)の中にOKボタンがあるとします。Spriteオブジェクトは、OKボタンをターゲットするクリックイベントを扱うイベントリスナーを登録できます。あるいは、ログインフォーム(Spriteオブジェクト)は、インプットフィールドをターゲットするフォーカスイベントを扱うイベントリスナーを登録できます。このような集中型のアーキテクチャでは、コードの繰り返しを減らすことができます。特に、ユーザーのインプットイベントに反応するコードに対して有効でしょう。第21章では、このイベントとディスプレイヒエラルキーについて詳しく解説しています。
Colin Moock
1995年からWebのプロとして活動しており、ネットワーククリエイティブや表現に情熱を注ぐWebグル。彼のFlashプログラミング関連書籍(O'Reilly Media出版)は世界中で高い評価を得ているほか、彼のサイト「moock.org」もまた、最も優れたFlashデベロッパーサイトの1つとして人気を得ている。日頃は、Unityを使ったマルチユーザーアプリケーション開発に没頭しており、制作したマルチユーザーアプリケーションはmoock.orgにて公開・販売中。