【AS 3.0 新增功能】核心语言功能&Player API 功能

核心语言功能

核心语言定义编程语言的基本构造块,例如语句、表达式、条件、循环和类型。ActionScript 3.0 包含许多加速开发过程的新功能。

子主题

运行时异常

运行时类型

密封类

闭包方法

ECMAScript for XML (E4X)

正则表达式

命名空间

新基元类型

运行时异常

ActionScript 3.0 报告的错误情形比早期的 ActionScript 版本多。运行时异常用于常见的错误情形,可改善调试体验并使您能够开发可以可靠地处理错误的应用程序。运行时错误可提供带有源文件和行号信息注释的堆栈跟踪,以帮助您快速定位错误

运行时类型

在 ActionScript 2.0 中,类型注释主要是为开发人员提供帮助;在运行时,所有值的类型都是动态指定的。在 ActionScript 3.0 中,类型信息在运行时保留,并可用于多种目的。Flash Player 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 实现的 E4X 的详细信息,请参阅"处理 XML"

要查看 ECMA 的 E4X 规范,请访问 www.ecma-international.org

正则表达式

ActionScript 3.0 包括对正则表达式的固有支持,因此您可以快速搜索并操作字符串。由于在 ECMAScript (ECMA-262) 第 3 版语言规范中对正则表达式进行了定义,因此 ActionScript 3.0 实现了对正则表达式的支持。

命名空间

命名空间与用于控制声明(publicprivateprotected)的可见性的传统访问说明符类似。它们的工作方式与名称由您指定的自定义访问说明符类似。命名空间使用统一资源标识符 (URI) 以避免冲突,而且在您使用 E4X 时还用于表示 XML 命名空间。

新基元类型

ActionScript 2.0 拥有单一数值类型 Number,它是一种双精度浮点数。ActionScript 3.0 包含 int 和 uint 类型。int 类型是一个带符号的 32 位整数,它使 ActionScript 代码可充分利用 CPU 的快速处理整数数学运算的能力。int 类型对使用整数的循环计数器和变量都非常有用。uint 类型是无符号的 32 位整数类型,可用于 RGB 颜色值、字节计数和其它方面。

 


Flash Player API 功能

ActionScript 3.0 中的 Flash Player API 包含许多允许您在低级别控制对象的新类。语言的体系结构是全新的并且更加直观。由于需要在这里详细介绍的新类实在太多,因此以下各节将着重介绍一些重要的更改。

子主题

DOM3 事件模型

显示列表 API

处理动态数据和内容

低级数据访问

处理文本

DOM3 事件模型

文档对象模型第 3 级事件模型 (DOM3) 提供了一种生成并处理事件消息的标准方法,以使应用程序中的对象可以进行交互和通信,同时保持自身的状态并响应更改。通过采用万维网联盟 DOM 第 3 级事件规范,该模型提供了一种比早期的 ActionScript 版本中所用的事件系统更清楚、更有效的机制。

事件和错误事件都位于 flash.events 包中。Flash 组件框架使用的事件模型与 Flash Player API 相同,因此事件系统在整个 Flash 平台中是统一的。

显示列表 API

用于访问 Flash Player 显示列表的 API(包含 Flash 应用程序中的所有可视元素的树)由处理 Flash 中的可视基元的类组成。

新增的 Sprite 类是一个轻型构造块,它类似于 MovieClip 类,但更适合作为 UI 组件的基类。新增的 Shape 类表示原始的矢量形状。可以使用 new 运算符很自然地实例化这些类,并可以随时动态地重新指定其父类。

现在,深度管理是自动执行的并且已内置于 Flash Player 中,因此不需要指定深度编号。提供了用于指定和管理对象的 z 顺序的新方法。

处理动态数据和内容

ActionScript 3.0 包含用于加载和处理 Flash 应用程序中的资源和数据的机制,这些机制在 API 中是直观的并且是一致的。新增的 Loader 类提供了一种加载 SWF 文件和图像资源的单一机制,并提供了一种访问已加载内容的详细信息的方法。URLLoader 类提供了一种单独的机制,用于在数据驱动的应用程序中加载文本和二进制数据。Socket 类提供了一种以任意格式从/向服务器套接字中读取/写入二进制数据的方式。

低级数据访问

各种 API 提供了对数据的低级访问,而这种访问以前在 ActionScript 中是不可能的。对于正在下载的数据而言,可使用 URLStream 类(由 URLLoader 实现)在下载数据的同时访问原始二进制数据。使用 ByteArray 类可优化二进制数据的读取、写入以及处理。使用新增的 Sound API,可以通过 SoundChannel 类和 SoundMixer 类对声音进行精细控制。新增的处理安全性的 API 可提供有关 SWF 文件或加载内容的安全权限的信息,从而使您能够更好地处理安全错误。

处理文本

ActionScript 3.0 包含一个用于所有与文本相关的 API 的 flash.text 包。TextLineMetrics 类为文本字段中的一行文本提供精确度量;它取代了 ActionScript 2.0 中的 TextField.getLineMetrics() 方法。TextField 类包含许多有趣的新低级方法,它们可以提供有关文本字段中的一行文本或单个字符的特定信息。这些方法包括 getCharBoundaries()(返回一个表示字符边框的矩形)、getCharIndexAtPoint()(返回指定点处字符的索引)以及 getFirstCharInParagraph()(返回段落中第一个字符的索引)。行级方法包括 getLineLength()(返回指定文本行中的字符数)和 getLineText()(返回指定行的文本)。新增的 Font 类提供了一种管理 SWF 文件中的嵌入字体的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值