与 JavaScript 类似,ActionScript 也基于 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;
}
不过,这两种语言在语法和工作方式上存在差异。例如,如果使用 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 文件中)。但是,当前有关这些类(未包含在
针对 HTML 开发人员的 Adobe AIR API 参考
中)的 API 文档使用 ActionScript 语法描述它们。换句话说,有关运行时的某些高级功能,请参阅
用于 Adobe Flash Platform 的 ActionScript 3.0 参考
。了解 ActionScript 的基础知识有助于您了解如何在 JavaScript 中使用这些运行时类。
例如,以下 JavaScript 代码可播放 MP3 文件的声音:
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();