ActionScript 3.0 的优点
ActionScript 3.0 的优点
ActionScript 3.0 的脚本编写功能超越了 ActionScript 的早期版本。它旨在方便创建拥有大型数据集和面向对象的可重用代码库的高度复杂应用程序。虽然 ActionScript 3.0 对于在Adobe Flash Player 9 中运行的内容并不是必需的,但它使用新型的虚拟机 AVM2 实现了性能的改善。ActionScript 3.0 代码的执行速度可以比旧式 ActionScript 代码快 10 倍。旧版本的 ActionScript 虚拟机 AVM1 执行 ActionScript 1.0 和 ActionScript 2.0 代码。为了向后兼容现有内容和旧内容, Flash Player 9 支持 AVM1
ActionScript 3.0 中的新增功能
虽然 ActionScript 3.0 包含 ActionScript 编程人员所熟悉的许多类和功能,但ActionScript 3.0 在架构和概念上是区别于早期的 ActionScript 版本的。ActionScript 3.0中的改进部分包括新增的核心语言功能,以及能够更好地控制低级对象的改进 Flash PlayerAPI。
核心语言功能
核心语言定义编程语言的基本构造块,例如语句、表达式、条件、循环和类型。
ActionScript 3.0 包含许多加速开发过程的新功能。
运行时异常
ActionScript 3.0 报告的错误情形比早期的 ActionScript 版本多。运行时异常用于常见的错误情形,可改善调试体验并使您能够开发可以可靠地处理错误的应用程序。运行时错误可提供带有源文件和行号信息注释的堆栈跟踪,以帮助您快速定位错误。
运行时类型
在 ActionScript 2.0 中,类型注释主要是为开发人员提供帮助;在运行时,所有值的类型都是动态指定的。在 ActionScript 3.0 中,类型信息在运行时保留,并可用于多种目的。FlashPlayer 9 执行运行时类型检查,增强了系统的类型安全性。类型信息还可用于以本机形式表示变量,从而提高了性能并减少了内存使用量。
密封类
ActionScript 3.0 引入了密封类的概念。密封类只能拥有在编译时定义的固定的一组属性和方法;不能添加其它属性和方法。这使得编译时的检查更为严格,从而导致程序更可靠。由于不要求每个对象实例都有一个内部哈希表,因此还提高了内存的使用率。还可以通过使用dynamic 关键字来实现动态类。默认情况下,ActionScript 3.0 中的所有类都是密封的,但可以使用 dynamic 关键字将其声明为动态类。
闭包方法
ActionScript 3.0 使闭包方法可以自动记起它的原始对象实例。此功能对于事件处理非常有用。在 ActionScript 2.0 中,闭包方法无法记起它是从哪个对象实例提取的,所以在调用闭包方法时将导致意外的行为。mx.utils.Delegate 类是一种常用的解决方法,但已不再需要。
ECMAScript for XML (E4X)
ActionScript 3.0 实现了 ECMAScript for XML (E4X),后者最近被标准化为 ECMA-357。E4X 提供一组用于操作 XML 的自然流畅的语言构造。与传统的 XML 分析 API 不同,使用 E4X 的 XML 就像该语言的本机数据类型一样执行。E4X 通过大大减少所需代码的数量来简化操作 XML 的应用程序的开发。
正则表达式
ActionScript 3.0 包括对正则表达式的固有支持,因此您可以快速搜索并操作字符串。由于在 ECMAScript (ECMA-262) 第 3 版语言规范中对正则表达式进行了定义,因此 ActionScript 3.0 实现了对正则表达式的支持。
命名空间
命名空间与用于控制声明(public、private、protected)的可见性的传统访问说明符类似。它们的工作方式与名称由您指定的自定义访问说明符类似。命名空间使用统一资源标识符 (URI) 以避免冲突,而且在您使用 E4X 时还用于表示 XML 命名空间。
新基元类型
ActionScript 2.0 拥有单一数值类型 Number,它是一种双精度浮点数。ActionScript 3.0包含 int 和 uint 类型。int 类型是一个带符号的 32 位整数,它使 ActionScript 代码可充分利用 CPU 的快速处理整数数学运算的能力。int 类型对使用整数的循环计数器和变量都非常有用。uint 类型是无符号的 32 位整数类型,可用于 RGB 颜色值、字节计数和其它方面。