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;
}
戻り値がない場合は戻り値の型を クラスの宣言クラスの構文はJavaやC#に似通っている。クラスのアクセスレベルはパッケージ外からもアクセスできる 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」等と呼ばれる開発環境/開発手法が注目されている。
Flash における ActionScript の歴史スクリプト未搭載
ActionScript 前
ActionScript 1処理系は ActionScript Virtual Machine 1 である。
ActionScript 2
ActionScript 3処理系がActionScript Virtual Machine 2となった。フレームワークも全面的に改装され、立体、透視の実装や、新しいディスプレイオブジェクトとディスプレイオブジェクトコンテイナーの体制が取り入れた。文法では、関数を直接イベントに使用することなどが出来なくなり、3Dモデリングソフトウェアのように自動的に物体の「深さ」(デプス)をレンダリングできないので、これ以前の版に慣れているプログラマには難しいかもしれない。そのために、色々なライブラリ(3D、フィルターなど)がウェブ上で公開されている。
脚注注釈
出典
関連項目 |
Portal di Ensiklopedia Dunia