ActionScript

Flashに使用されるプログラミング言語
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やC#に似通っている。クラスのアクセスレベルはパッケージ外からもアクセスできるpublicとパッケージ内のみからアクセスできるinternalの2種類があり、省略した場合はinternalとなる。コンストラクタやメソッド、フィールド(メンバー変数、メンバー定数)のアクセスレベルはpublic, internal, protected, privateの4種類があり、省略した場合はinternalとなる。コンストラクタは省略可能であり、省略した場合はデフォルトコンストラクタが自動定義される。ソースファイル外部に公開されるクラスの名前は、そのクラスを含むソースファイルの名前と一致する必要がある[1]。ソースファイルの名前は「クラス名.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

脚注

編集

注釈

編集
  1. ^ ActionScript 2.0では Void

出典

編集
  1. ^ ステートメント、キーワード、ディレクティブ - Adobe ActionScript® 3(AS3 )API リファレンス
  2. ^ http://tech.motion-twin.com/mtasc.html
  3. ^ http://www.liveswif.net/
  4. ^ http://www.cty-net.ne.jp/~uzgensho/
  5. ^ http://www.codedrive.com/

関連項目

編集