|
JavaScript と ActionScript3.0 の違いについて考察。 Adobeからダウンロードできるマニュアルの dev_guide_html.pdf のp.122(正確なPDFのページ数では129p)から「Differences between ActionScript and JavaScript: anoverview」という項目があり、詳しく載せられています。
要約すると以下の感じです。 変数の型付けActionScript3.0では、変数の型付けを行うことができます。変数宣言「var」で「var 変数名:型名」のようにして変数の型付けを行います。以下は、関数をActionScript3.0用に書き直したものです。例を見てみましょう。以下は、Adobe AIRでMP3の再生を行う例です。型付けを行うことで、プログラムの入力ミス(型の間違い)を検出することができるので、安心してプログラムを作ることができます。また、プログラミングの時に強力な入力補完機能を使うことができます。 // JavaScript の場合
var file = new air.File("test.mp3");
var sound = air.Sound(file);
sound.play();
// ActionScript3.0の場合
var file:File = new File("test.mp3");
var sound = new Sound(file);
sound.play();
クラスベースのオブジェクト指向JavaScriptは、プロトタイプベースでしたが、ActionScript3.0では、クラスベースでプログラムを作ることができます。これにより、Javaに近い形となりました。
public class ExampleClass {
public var x:Number;
public function ExampleClass(input:Number):void {
x = input;
}
public function greet():void {
trace("The value of x is: ", x);
}
}
パッケージとネームスペースActionScript3.0にはパッケージとネームスペースがあります。パッケージにより、Flash の各機能がカテゴリごとに分かれています。また、クラスのプロパティごとに、public、private、protected、internal のように、ネームスペースを指定することができます。 関数の引数にデフォルト値が指定できるActionScript3.0では、以下のように、関数を定義した時に、引数にデフォルト値が定義できるようになっています。
function root(n:Number, p:Number = 1):Number {
return Math.pow(n, 1/p);
}
また、JavaScript でも似たようなことはできますが、明確に可変引数をもつ関数を定義できます。
function average(... args) : Number{
var sum:Number = 0;
for (var i:int = 0; i < args.length; i++) {
sum += args[i];
}
return (sum / args.length);
}
イベントモデルの統一イベントモデルが統一されています。「object.addEventListener(イベント名, 処理を行う関数);」の形式でイベントを登録します。 以上、dev_guide_html.pdf の「Differences between ActionScript and JavaScript: anoverview」を読んでの要約と(勝手な感想)でした。 ECMAScript への対応状況その他、ECMAScriptのバージョンや対応状況は、Wikipedia に詳しく載せられていました。
こちらも転載&ちょっと修正したものが以下になります [参考] ECMAScript(JavaScriptの標準規格)への対応状況
コメント→コメント編集
|