ActionScript
ActionScript(アクションスクリプト)とは、アドビの製品であるFlashに使用されるプログラミング言語である。ECMAScriptを拡張した物である。これを用いることにより、動画や音声のプレイヤーの作成など、コンテンツに複雑な処理や双方向性を持たせFlash作品を作ることが可能である。
概要
ActionScriptが初めて搭載されたのが2000年に発売されたFlash 5で、後継バージョンである Flash MX 2004 (Flash 7) からは 2.0 が、Flash CS3 (Flash 9) では3.0が搭載されている。Flash 4やそれ以前にもスクリプト機能は搭載されていたが、それは、ActionScriptとは呼ばれておらず、ECMAScriptベースでもなかった。
初代 ActionScriptは単純で覚えやすいスクリプト言語であり、プロトタイプベースのオブジェクト指向言語だったが、ActionScript 2.0、3.0ではより大規模開発に適したクラスベースのオブジェクト指向言語を搭載した。
ActionScriptは主にSWFファイルの開発用ソフトウェアである Adobe FlashおよびAdobe Flexでスクリプトとして記述する。
文法
ActionScript 1.0は文法がJavaScriptに似ているが、ActionScript 2.0からはクラスベースのオブジェクト指向言語になりJavaに似通った特徴を持つようになった。ActionScriptではすべてのデータをオブジェクトと見なしている。Flash ではプログラミングコードを記述する場所が複数あり、タイムラインのフレーム上に書いた場合とクラスとして外部ファイルに書いた場合と記述の仕方が若干異なる。また、ActionScript 2.0 (Flash 8) まではムービークリップまたはボタン上にプログラミングコードを記述できたが、 ActionScript 3.0 (Flash CS3) で廃止された。ここでは ActionScript 3.0の文法を説明していく。
変数の宣言
変数の宣言は下記の書式で記述する。
var 変数名 : 変数の型
例:
var num : int;
関数の宣言
関数の宣言は下記の書式で記述する。
function 関数名(引数1:引数1の型, 引数2:引数2の型, ...) : 戻り値の型 {
実行するコード1
実行するコード2
...
}
例:
function sum(a:Number, b:Number) : Number {
return a + b;
}
戻り値がない場合は戻り値の型を void
とする。void
と宣言した場合、戻り値は undefined
になる。
クラスの宣言
クラスの構文はJavaやC#に似通っている。クラスのアクセスレベルはパッケージ外からもアクセスできるpublic
とパッケージ内のみからアクセスできるinternal
の2種類があり、省略した場合はinternal
となる。コンストラクタやメソッド、フィールド(メンバー変数、メンバー定数)のアクセスレベルはpublic
, internal
, protected
, private
の4種類があり、省略した場合はinternal
となる。コンストラクタは省略可能であり、省略した場合はデフォルトコンストラクタが自動定義される。ソースファイル外部に公開されるクラスの名前は、そのクラスを含むソースファイルの名前と一致する必要がある。ソースファイルの名前は「クラス名.as
」とし、パッケージと同じディレクトリに置かなければならない。
package パッケージ名 {
public class クラス名 {
// コンストラクタ
public function クラス名() {
}
}
}
統合開発環境
アドビ
ActionScriptを編集するため��アドビが提供する各種アプリケーションは、一般的に使われている統合開発環境とは異なる点が多く、それらに慣れたプログラマには評判が悪い傾向がある。Adobe Flex Builder では、Eclipseプラグインの形で編集環境を提供しており、別言語の修得者は差異に悩むことなく開発を行える。またAdobe Flex SDKがアドビから無償で提供されている。これら以外の統合開発環境ではFlashDevelopなどがある。
その他
無償のオープンソースの物や、アドビ以外の会社が提供するFlash開発用ソフトウェアも発売されている。それらのソフトウェアにもActionScriptに対応しているものがある。オープンソースの Motion-Twin ActionScript 2 Compiler はアドビシステムズ社の製品よりもコンパイルが速いと謳われている。
またオープンソースのコンパイラを利用して ActionScript から SWF ファイルを作る、「FAME」「FAMES」「FLAMES」等と呼ばれる開発環境/開発手法が注目されている。
Flash における ActionScript の歴史
スクリプト未搭載
ActionScript 前
ActionScript 1
処理系は ActionScript Virtual Machine 1 である。
ActionScript 2
ActionScript 3
処理系がActionScript Virtual Machine 2となった。フレームワークも全面的に改装され、立体、透視の実装や、新しいディスプレイオブジェクトとディスプレイオブジェクトコンテイナーの体制が取り入れた。文法では、関数を直接イベントに使用することなどが出来なくなり、3Dモデリングソフトウェアのように自動的に物体の「深さ」(デプス)をレンダリングできないので、これ以前の版に慣れているプログラマには難しいかもしれない。そのために、色々なライブラリ(3D、フィルターなど)がウェブ上で公開されている。