ActionScript は、JavaScript と同じ ECMAScript 言語仕様に基づいています。したがって、両言語の基本的シンタックスは共通しています。例えば、次のコードは JavaScript でも ActionScript でも同様に機能します。
var str1 = "hello";
var str2 = " world.";
var str = reverseString(str1 + str2);
function reverseString(s) {
var newString = "";
var i;
for (i = s.length - 1; i >= 0; i--) {
newString += s.charAt(i);
}
return newString;
}
しかし、これら 2 つの言語のシンタックスと機能には相違点もあります。例えば、前述のコード例は ActionScript 3.0(SWF ファイル)で次のように記述することもできます。
function reverseString(s:String):String {
var newString:String = "";
for (var i:int = s.length - 1; i >= 0; i--) {
newString += s.charAt(i);
}
return newString;
}
Adobe AIR の HTML コンテンツでサポートされる JavaScript のバージョンは JavaScript 1.7 です。このトピックでは、JavaScript 1.7 と ActionScript 3.0 の違いについて説明します。
ランタイムには、高度な機能を提供するビルトインクラスがあります。HTML ページの JavaScript から、実行時にこれらのクラスにアクセスできます。これらのランタイムクラスは、ActionScript(SWF ファイル)と JavaScript(ブラウザーで実行される HTML ファイル)の両方で使用できます。ただし、現在、これらのクラスの API ドキュメント(『
HTML 開発者用 Adobe AIR API リファレンスガイド
』には含まれていません)では、ActionScript のシンタックスを使用して説明されています。このため、ランタイムの高度な機能の一部については、『
Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド
』を参照してください。ActionScript に関する基礎知識は、JavaScript におけるこれらのランタイムクラスの使用方法を理解するのに役立ちます。
例として、MP3 ファイルのサウンドを再生する JavaScript コードを次に示します。
var file = air.File.userDirectory.resolve("My Music/test.mp3");
var sound = air.Sound(file);
sound.play();
これらの各コード行では、JavaScript のランタイム機能が呼び出されます。
SWF ファイルでは、次に示す ActionScript コードでこれらのランタイム機能にアクセスできます。
var file:File = File.userDirectory.resolve("My Music/test.mp3");
var sound = new Sound(file);
sound.play();