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
とする[1]。void
と宣言した場合、戻り値は undefined
になる。
クラスの宣言
クラスの構文は Java に似通っている。クラスとコンストラクタは必ず public
にしなければならない。コンストラクタは省略可能である。ファイル名は「クラス名.as
」とし、パッケージと同じディレクトリに置かなければならない。
package パッケージ名
{
public class クラス名
{
//コンストラクタ
public function クラス名 ()
{
}
}
}
統合開発環境
アドビシステムズ社
ActionScript を編集するためにアドビシステムズ社が提供する各種アプリケーションは、一般的に使われている統合開発環境とは異なる点が多く、それらに慣れたプログラマーには評判が悪い傾向がある。Adobe Flex Builder では、Eclipseプラグインの形で編集環境を提供しており、別言語の修得者は差異に悩むことなく開発を行える。また Adobe Flex SDK がアドビシステムズから無償で提供されている。これら以外の統合開発環境では FlashDevelop などがある。
その他
無償のオープンソースの物や、アドビシステムズ以外の会社が提供する Flash 開発用ソフトウェアも発売されている。それらのソフトにも ActionScript に対応しているものがある。オープンソースの Motion-Twin ActionScript 2 Compiler[2] はアドビシステムズ社の製品よりもコンパイルが速いと謳われている。
またオープンソースのコンパイラを利用して ActionScript から SWF ファイルを作る、「FAME」「FAMES」「FLAMES」等と呼ばれる開発環境/開発手法が注目されている。
製品名 | 備考 |
---|---|
LiveSwif[3] | タイムライン式。ActionScript に対応している。 |
ParaFla! | イベント式。ActionScript に対応している。 |
Suzuka[4] | タイムライン式。ActionScript に対応している。 |
wonderfl | ブラウザから ActionScript を入力し、サーバサイドでコンパイルを行うことで無償で開発を行うことができる。 |
CodeDrive[5] | |
ActionScript 3/Flash IDE | |
FlashDevelop | Adobe 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 5 | ECMAScript ベースとなり、関数が作れるようになる。 |
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.0 | |
2007年3月27日 | Flash CS3 | |
2008年2月25日 | Flex 3.0 | |
2008年2月25日 | AIR 1.0 | |
2008年12月19日 | Flash CS4 |
脚注
- ↑ ActionScript 2.0では
Void
。 - ↑ http://tech.motion-twin.com/mtasc.html
- ↑ http://www.liveswif.net/
- ↑ http://www.cty-net.ne.jp/~uzgensho/
- ↑ http://www.codedrive.com/