ActionScriptとは
ActionScriptは、
Adobe Flashプラットフォームで利用される
スクリプト言語です。ECMAScriptをベースに拡張されており、Flash
コンテンツに高度な処理や双方向性を持たせるために用いられます。この言語を使用することで、動画や音声のプレイヤー、インタラクティブなアニメーションなど、複雑なFlashアプリケーションを開発することができます。
概要
ActionScriptは、Flash 5(2000年発売)で初めて導入されました。その後、Flash MX 2004(Flash 7)ではActionScript 2.0が、Flash CS3(Flash 9)ではActionScript 3.0が搭載されています。初期のActionScriptは、比較的単純で習得しやすいプロトタイプベースの
オブジェクト指向言語でしたが、バージョン2.0以降は、より大規模な開発に適したクラスベースの
オブジェクト指向言語へと進化しました。
ActionScriptは主に
Adobe FlashやAdobe Flexといった開発ツールで利用され、SWFファイルの動作を制御するためのスクリプトとして記述されます。
文法
ActionScript 1.0の文法は
JavaScriptに似ていましたが、ActionScript 2.0以降は
Javaに近いクラスベースの
オブジェクト指向言語となりました。ActionScriptでは、すべてのデータがオブジェクトとして扱われます。
Flashでは、プログラミングコードをタイムライン上のフレームに記述する方法と、クラスとして外部ファイルに記述する方法があります。ActionScript 2.0まではムービークリップやボタンに直接コードを記述できましたが、ActionScript 3.0からはこの機能は廃止されました。
ここでは、ActionScript 3.0の文法について説明します。
変数の宣言
変数の宣言は以下の形式で行います。
actionscript
var 変数名: 型 = 初期値;
例:
actionscript
var message:String = "Hello, World!";
var count:int = 0;
関数の宣言
関数の宣言は以下の形式で行います。
actionscript
function 関数名(引数1:型, 引数2:型, ...):戻り値の型 {
// 処理内容
return 戻り値;
}
例:
actionscript
function add(a:int, b:int):int {
return a + b;
}
function sayHello(name:String):void {
trace("Hello, " + name);
}
戻り値がない場合は、戻り値の型を`void`と指定します。`void`を指定した場合、戻り値は`undefined`となります。
クラスの宣言
クラスの構文は
JavaやC#に似ています。クラスのアクセスレベルは、パッケージ外からもアクセスできる`public`と、パッケージ内のみからアクセスできる`internal`の2種類があります。アクセスレベルを省略した場合、デフォルトは`internal`になります。
コンストラクタ、メソッド、フィールド(メンバー変数、メンバー定数)のアクセスレベルは、`public`、`internal`、`protected`、`private`の4種類があり、省略した場合は`internal`になります。
コンストラクタは省略可能であり、省略した場合はデフォルトコンストラクタが自動的に定義されます。
ソースファイル外部に公開されるクラスの名前は、そのクラスを含むソースファイルの名前と一致する必要があります。ソースファイルの名前は`クラス名.as`とし、パッケージと同じディレクトリに置く必要があります。
統合開発環境
Adobeが提供するActionScript編集用のアプリケーションは、一般的な統合開発環境とは異なる点が多く、既存の
プログラマーからの評価は分かれる傾向があります。Adobe Flex BuilderはEclipse
プラグインとして提供され、他の言語の
プログラマーも比較的容易に開発を始めることができます。また、Adobe Flex SDKは無料で提供されています。
その他、FlashDevelopなど、様々な統合開発環境が存在します。
その他
ActionScriptに対応した、無償のオープンソースソフトウェアや、Adobe以外の企業が提供するFlash開発ソフトウェアも存在します。例えば、Motion-Twin ActionScript 2 Compilerは、Adobe製品よりも高速なコンパイルが可能とされています。
また、オープンソースの
コンパイラを利用してActionScriptからSWFファイルを作成する開発環境/手法(「FAME」「FAMES」「FLAMES」など)も注目を集めています。
FlashにおけるActionScriptの歴史
スクリプト未搭載
ActionScript 前
ActionScript 1: 処理系は ActionScript Virtual Machine 1 です。
ActionScript 2
ActionScript 3: 処理系がActionScript Virtual Machine 2となりました。フレームワークも全面的に刷新され、3D、透視の実装や、新しいディスプレイオブジェクトとディスプレイオブジェクトコンテナの構造が導入されました。文法面では、関数を直接イベントに使用することができなくなり、3Dモデリングソフトウェアのように自動的にオブジェクトの「深さ」(デプス)をレンダリングできないため、以前のバージョンに慣れたプログラマーにとっては難しく感じるかもしれません。そのため、3Dやフィルターなどの様々なライブラリがウェブ上で公開されています。
脚注
注釈
出典
関連項目
Adobe Flash
Adobe Flex
Adobe Integrated Runtime
*
ECMAScript for XML