ActionScript
テンプレート:Lang(アクションスクリプト)とは、アドビシステムズ社の製品である テンプレート:Lang に使用されるプログラミング言語である。テンプレート:Lang を拡張した物である。これを用いることにより、動画や音声のプレイヤーの作成など、コンテンツに複雑な処理や双方向性を持たせた テンプレート:Lang 作品を作ることが可能である。
概要
テンプレート:Lang が初めて搭載されたのが2000年に発売された テンプレート:Lang で、後継バージョンである テンプレート:Lang 2004(テンプレート:Lang)からは 2.0 が、テンプレート:Lang(テンプレート:Lang)では 3.0 が搭載されている。テンプレート:Lang やそれ以前にもスクリプト機能は搭載されていたが、それは、テンプレート:Lang とは呼ばれておらず、テンプレート:Lang ベースでもなかった。
初代 テンプレート:Lang は単純で覚えやすいスクリプト言語であり、プロトタイプベースのオブジェクト指向言語だったが、テンプレート:Lang 2.0、3.0ではより大規模開発に適したクラスベースのオブジェクト指向言語を搭載した。
テンプレート:Lang は主に SWF ファイルの開発用ソフトウェアである テンプレート:Lang および テンプレート:Lang でスクリプトとして記述する。
文法
テンプレート:Lang 1.0は文法が テンプレート:Lang に似ているが、テンプレート:Lang 2.0 からはクラスベースのオブジェクト指向言語になりJavaに似通っている。テンプレート:Lang ではすべてのデータをオブジェクトと見なしている。テンプレート:Lang ではプログラミングコードを記述する場所が複数あり、タイムラインのフレーム上に書いた場合とクラスとして外部ファイルに書いた場合と記述の仕方が若干異なる。また、テンプレート:Lang 2.0(テンプレート:Lang)まではムービークリップまたはボタン上にプログラミングコードを記述できたが、 テンプレート:Lang 3.0(テンプレート:Lang)で廃止された。ここでは テンプレート:Lang 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 になる。
クラスの宣言
クラスの構文は テンプレート:Lang に似通っている。クラスとコンストラクタは必ず public にしなければならない。コンストラクタは省略可能である。ファイル名は「クラス名.as」とし、パッケージと同じディレクトリに置かなければならない。
package パッケージ名
{
public class クラス名
{
//コンストラクタ
public function クラス名 ()
{
}
}
}統合開発環境
アドビシステムズ社
テンプレート:Lang を編集するためにアドビシステムズ社が提供する各種アプリケーションは、一般的に使われている統合開発環境とは異なる点が多く、それらに慣れたプログラマーには評判が悪い傾向がある。テンプレート:Lang では、[[Eclipse (統合開発環境)|テンプレート:Lang]]プラグインの形で編集環境を提供しており、別言語の修得者は差異に悩むことなく開発を行える。また テンプレート:Lang SDK がアドビシステムズから無償で提供されている。これら以外の統合開発環境では テンプレート:Lang などがある。
その他
無償のオープンソースの物や、アドビシステムズ以外の会社が提供する テンプレート:Lang 開発用ソフトウェアも発売されている。それらのソフトにも テンプレート:Lang に対応しているものがある。オープンソースの テンプレート:Lang[2] はアドビシステムズ社の製品よりもコンパイルが速いと謳われている。
またオープンソースのコンパイラを利用して テンプレート:Lang から SWF ファイルを作る、「テンプレート:Lang」「テンプレート:Lang」「テンプレート:Lang」等と呼ばれる開発環境/開発手法が注目されている。
| 製品名 | 備考 |
|---|---|
| テンプレート:Lang[3] | タイムライン式。テンプレート:Lang に対応している。 |
| テンプレート:Lang | イベント式。テンプレート:Lang に対応している。 |
| テンプレート:Lang[4] | タイムライン式。テンプレート:Lang に対応している。 |
| テンプレート:Lang | ブラウザから テンプレート:Lang を入力し、サーバサイドでコンパイルを行うことで無償で開発を行うことができる。 |
| テンプレート:Lang[5] | |
| テンプレート:Lang | |
| テンプレート:Lang | テンプレート:Lang 製ソフトや テンプレート:Lang コンテンツを作成できる無償の開発環境 |
テンプレート:Lang における テンプレート:Lang の歴史
スクリプト未搭載
| 公開日 | 製品 | 備考 |
|---|---|---|
| 1996年 | テンプレート:Lang |
| 公開日 | 製品 | 備考 |
|---|---|---|
| 1997年 | テンプレート:Lang | ボタン機能搭載と共に「ボタンアクション」「フレームアクション」搭載。getURL() や gotoAndPlay() などが可能。フレーム間の移動が可能になる。
|
| 1998年 | テンプレート:Lang | 複数のスクリプトの記述が可能になった。loadMovie()、fscommand()など実装。
|
| 1999年 | テンプレート:Lang | 「アクション」機能大幅高度化。変数、四則演算、文字列処理、条件分岐などが追加。関数呼び出しに相当するのは、フレームの移動である、call() である。
|
処理系は テンプレート:Lang である。
| 公開日 | 製品 | 備考 |
|---|---|---|
| 2000年 | テンプレート:Lang | テンプレート:Lang ベースとなり、関数が作れるようになる。 |
| 2002年 | テンプレート:Lang | イベントハンドラメソッド」搭載。instanceof や === が導入され、より テンプレート:Lang 準拠となる。
|
| 公開日 | 製品 | 備考 |
|---|---|---|
| 2003年 | テンプレート:Lang 2004 | クラスベースのオブジェクト指向が導入される。例外処理を追加。 |
| 2005年 | テンプレート:Lang |
処理系が テンプレート:Lang となった。フレームワークも全面的に改装され、立体、透視の実装や、新しいディスプレイオブジェクトとディスプレイオブジェクトコンテイナーの体制が取り入れた。文法では、関数を直接にイベントの使用することなどが出来なくなり、テンプレート:Lang モデリングソフトウェアのように自動的に物体の「深さ」(デプス)をレンダリングできないので、これ以前の版に慣れているプログラマーには難しいかもしれない。そのために、色々なライブラリ(テンプレート:Lang、フィルターなど)がウェブ上で公開されている。
| 公開日 | 製品 | 備考 |
|---|---|---|
| 2006年7月28日 | テンプレート:Lang | |
| 2007年3月27日 | テンプレート:Lang | |
| 2008年2月25日 | テンプレート:Lang | |
| 2008年2月25日 | テンプレート:Lang | |
| 2008年12月19日 | テンプレート:Lang |