ActionScript 3.0の概要
ActionScript 3.0とは
アニメーションを簡単に制作したり、サウンドや動画を組み込むことができて、そのすべてが制御できるインタラクティブ(対話性)でステキなものと言えば、あなたはまず何を思い浮かべるでしょうか?
Adobe Flash CS3 Professional(以下Flash)は、米国アドビ システムズ社(旧Macromedia社、以下Adobe)が開発したコンテンツ制作ソフトです。
ActionScriptとは、Flashコンテンツにおけるアニメーションの制御やインタラクティブなコンテンツを開発するためのスクリプト言語です。Flash IDEの進化に伴いActionScriptも進化し、2006年にはActionScript 3.0が発表され、より厳密にECMAScript(ECMA-262)規格に準拠したクラスベースのオブジェクト指向言語として生まれ変わりました。その結果、複雑で大規模なコンテンツを柔軟に開発することが可能になりました。
ActionScript 3.0で開発されたFlashコンテンツは、Flash Player 9以降で再生可能です。バージョン9未満のFlash Playerでは実行できません。2008年3月時点のFlash Playerバージョン別普及率によると、Flash PlayerがインストールされているPCの98.0%が、バージョン9以上であると発表されています。
Flashコンテンツの開発環境は、Flash CS3やFlex Builderが挙げられます。前者はデザイナー向け、後者はデベロッパー向けと言えるでしょう。Adobeにおいて無償で配布されているFlex SDKをコンパイラとして使用すれば、コストをかけずに開発することも可能です。
本連載ではActionScript 3.0の基本的な記述方法を中心に学んでいきたいと思います。
ActionScript 1.0/2.0と3.0の違い
大幅に進化を遂げたActionScriptですが、従来のバージョンとの主な変更点を5つ紹介します(図1)。
1つ目は、「新しいイベントモデルへの統一」です。ActionScript 1.0/2.0ではボタンやムービークリップに直接イベントハンドラを記述するonClipEvent()やon()に代表されるオブジェクトアクションなど、イベント処理が複数ありましたが、それらはすべて廃止され、DOM Level 3 Events Model仕様に準拠されました。
2つ目は、「最大10倍の実行速度」です。新しいActionScript仮想マシン(AVM2)を実装することにより、パフォーマンスが向上しました。従来のバージョン(Flash Player 8以下におけるActionScript 1.0/2.0コンテンツ)よりも最大約10倍程度高速化されています。
3つ目は、「XML操作の効率化」です。XMLオブジェクトを扱うクラスが一新され、ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)に基づくXML APIが実装されました。これにより、煩雑だったXMLの解析や処理を効率的に行うことができるように改善されました。
4つ目は、「表示アーキテクチャの変更」です。ActionScript 3.0では、すべてのオブジェクトが表示リストと呼ばれるStageオブジェクトを頂点としたツリー構造によって管理されています。オブジェクトを表示させるには、この表示リストに登録しなければなりません。
5つ目は、「統一されたインスタンスの生成」です。MovieClipにおけるインスタンスの生成方法もがらっと変わっています。例えば2.0までのMovieClipインスタンスを生成する方法として、attachMovie()がありました。 ActionScript 3.0ではこのメソッドは廃止され、MovieClipインスタンスはほかのオブジェクトと同様、newキーワードを使用し任意のクラスをインスタンス化することにより生成することが可能になりました。これは、本来のあるべき書式になったと言えます。サンプルのソースコードは下記になります。
var mc:MovieClip = new MovieClip();
次に簡単なサンプルをご紹介しましょう。