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 とするActionScript 2.0では Void。。voidと宣言した場合、戻り値は undefined になる。

クラスの宣言
クラスの構文はJavaやC#に似通っている。クラスのアクセスレベルはパッケージ外からもアクセスできるpublicとパッケージ内のみからアクセスできるinternalの2種類があり、省略した場合はinternalとなる。コンストラクタやメソッド、フィールド（メンバー変数、メンバー定数）のアクセスレベルはpublic, internal, protected, privateの4種類があり、省略した場合はinternalとなる。コンストラクタは省略可能であり、省略した場合はデフォルトコンストラクタが自動定義される。ソースファイル外部に公開されるクラスの名前は、そのクラスを含むソースファイルの名前と一致する必要があるステートメント、キーワード、ディレクティブ - Adobe ActionScript® 3（AS3 ）API リファレンス。ソースファイルの名前は「クラス名.as」とし、パッケージと同じディレクトリに置かなければならない。

package パッケージ名 {
    public class クラス名 {
        // コンストラクタ
        public function クラス名() {
        }
    }
}

統合開発環境
アドビ
ActionScriptを編集するためにアドビが提供する各種アプリケーションは、一般的に使われている統合開発環境とは異なる点が多く、それらに慣れたプログラマには評判が悪い傾向がある。Adobe Flex Builder では、Eclipseプラグインの形で編集環境を提供しており、別言語の修得者は差異に悩むことなく開発を行える。またAdobe Flex SDKがアドビから無償で提供されている。これら以外の統合開発環境ではFlashDevelopなどがある。

その他
無償のオープンソースの物や、アドビ以外の会社が提供するFlash開発用ソフトウェアも発売されている。それらのソフトウェアにもActionScriptに対応しているものがある。オープンソースの Motion-Twin ActionScript 2 Compilerhttp://tech.motion-twin.com/mtasc.html はアドビシステムズ社の製品よりもコンパイルが速いと謳われている。

またオープンソースのコンパイラを利用して ActionScript から SWF ファイルを作る、「FAME」「FAMES」「FLAMES」等と呼ばれる開発環境/開発手法が注目されている。

製品名備考LiveSwifhttp://www.liveswif.net/タイムライン式。ActionScriptに対応している。ParaFla!イベント式。ActionScriptに対応している。http://www.cty-net.ne.jp/~uzgensho/タイムライン式。ActionScriptに対応している。wonderflブラウザからActionScriptを入力し、サーバサイドでコンパイルを行うことで無償で開発を行うことができる。CodeDrivehttp://www.codedrive.com/ActionScript 3/Flash IDEFlashDevelopAdobe AIR製ソフトやFlashコンテンツを作成できる無償の開発環境

Flash における ActionScript の歴史
スクリプト未搭載
公開日製品備考1996年Flash 1

ActionScript 前
公開日製品備考1997年Flash 2ボタン機能搭載と共に「ボタンアクション」「フレームアクション」搭載。getURL() や gotoAndPlay() などが可能。フレーム間の移動が可能になる。1998年Flash 3複数のスクリプトの記述が可能になった。loadMovie()、fscommand()など実装。1999年Flash 4「アクション」機能大幅高度化。変数、四則演算、文字列処理、条件分岐などが追加。関数呼び出しに相当するのは、フレームの移動である、call() である。

ActionScript 1
処理系は ActionScript Virtual Machine 1 である。

公開日製品備考2000年Flash 5ECMAScriptベースとなり、関数が作れるようになる。2002年Flash MXイベントハンドラメソッド」搭載。instanceof や === が導入され、よりECMAScript準拠となる。

ActionScript 2
公開日製品備考2003年Flash MX 2004クラスベースのオブジェクト指向が導入される。例外処理を追加。2005年Flash 8

ActionScript 3
処理系がActionScript Virtual Machine 2となった。フレームワークも全面的に改装され、立体、透視の実装や、新しいディスプレイオブジェクトとディスプレイオブジェクトコンテイナーの体制が取り入れた。文法では、関数を直接イベントに使用することなどが出来なくなり、3Dモデリングソフトウェアのように自動的に物体の「深さ」（デプス）をレンダリングできないので、これ以前の版に慣れているプログラマには難しいかもしれない。そのために、色々なライブラリ（3D、フィルターなど）がウェブ上で公開されている。

公開日製品備考2006年7月28日Flex 2.02007年3月27日Flash CS32008年2月25日Flex 3.02008年2月25日AIR 1.02008年12月19日Flash CS4

脚注
注釈

出典

関連項目
Adobe Flash
Adobe Flex
Adobe Integrated Runtime
ECMAScript for XML

Category:Adobe Flash
Category:JavaScript
ActionScript