可以说这是我翻译的第一个ActionScript文件,虽然AS3.0吵的很大.但由于有关中文介绍的还并不多见,所以翻译了这篇文章.这篇文章译自:http://labs.macromedia.com/wiki/index.php/ActionScript_3:overview
由于英语水平和actionscript水平有限,也许有些错误之处,在此恳请斑主和大伙们指出,但同时也希望对大家有所用处。
ActionScript3.0概要
ActionScript 3.0 演变成一门强大的面向对象的编程语言意味着flash平台的重大变革。这种变化也意味着 ActionScript 3.0 将创造性地将语言理想地迅速地建立出适应网络的丰富应用程序, 成为丰富网络应用(Rich Internet Application)项目的本质部分。比较早期的ActionScript版本就已经提供了这种要求为创造真实地参与在线体验的力量和灵活性。ActionScript 3.0 将促进和发展这种性能, 提供发展强大表现和舒适的先进的高度复杂应用, 结合大型数据库以及可移值性的面象对象的代码。拥有 ActionScript 3.0, 开发者可能达到高效执行效率和表现同一的平台。
ActionScript 3.0 基于ECMAScript, ECMAScript是所有编程语言的国际规范化的语言。ActionScript 3.0 同样遵从ECMAScript语言规范。
ActionScript 由嵌入在flash player的ActionScript虚拟机 (AVM)执行。AVM1, 是执行以前版本的ActionScript的虚拟机, 今天变的更加强大的flash平台使得可能创造出交互式媒体和丰富的网络应用。然而, AVM1却在挤压着开发者们的极限—— 他们的项目现在到了要求它变革的时刻了。ActionScript 3.0 带来了一个更加高效的ActionScript 执行虚拟机—AVM2, 它将彻底的脱胎换骨于AVM1 。 它将意味着, ActionScript 3.0执行效率将比以前的ActionScript执行效率高出至少10倍。
新的AVM2 虚拟机将会嵌入于flash player8.5当中, 它将成为执行ActionScript的首先虚拟机。当然旧的AVM1将继续嵌入在flash player8.5当中以兼容以前的ActionScript。
有众多的产品把自身的展示和应用表现于flash player当中,这些产品的动画也经常应用到ActionScript 以增加互动和行为表现他们的产品。 在Macromedia 产品家族, 专业设计师和也许使用 ActionScript 在几个产品当中, 譬如Macromedia flash, Flex, 和Flash media servers创造出内容和应用表现在flash player当中。在Flex2 产品家族, 包括最新的基于Eclipe—的Flex Builder 2 IDE,会是系列产品中第一个应用ActionScript 3.0 的新体验的产品。
ActionScript 3.0的目标
我们需要ActionScript 3.0 提供一个先进的, 与编程模型一致的, 服从业界标准, 以及表现将数量级大于我们过去的执行效能。虽然ActionScript 3.0 代表着flash平台一个新的编程模型,它也将会是一个让开发者熟悉的基础的面对对象的编程语言。
ActionScript3.0的出现将展现出如下目标
安全 – 它支持一定的安全以使得能够让开发者写出明白的, 容易的可维护的代码。
朴素 - 这种语言的直观程度使开发者能够直接读和写项目,而不需要经常参考手册
表现 - 这种语言使开发者写出高效率的和表现性强的复杂项目。
兼容性 - 这种语言抛弃不规范的语言标准以及提供向前兼容以及有意义的交替以符合业界标准。ActionScript 3.0 是规范化了的ActionScript 2.0, 增 加了ECMAScript 其中的XML应用(E4X) ,使得这 种语言融入ECMAScript整体连为一贯。
ActionScript 3.0的特征
ActionScript 3.0 包括二部分: 核心语言和flash player API 。核心语言用于定义编程语言的结构, 譬如声明, 表示, 条件, 循环, 和类型 。flash player API是 由一系列精确定义flash player功能的类组成。
ActionScript 3.0 拥有尽可能的挖掘出计算机剩余性能的新特点。规则表示支持使操作性更加强大的XML。 ECMAScript for XML (E4X) 使得XML 成为通用数据类型, 将大大地简化XML 处理。新的Display ListAPI将使虚拟对象更加的协调一致。 规范化的DOM 事件模型使得那些对象的表示和响应结合的更加强劲。当然这些只是ActionScript3.0许多新的体验当中的一部分。
actionscript3.0语言特点
ActionScript 3.0 的出现是ActionScript 2.0 的核心语言方面融入ECMAScript 以遵守其标准和引入新的改进的一些功能区域的结合。所有这些特点在ActionScript 3.0 语言参考中都有详细的介绍和讨论, 可得到试用版正在Macromedia 实验室。下面是一些其开发者对其方便的地方和用法总结的一些新特点。
增强处理运行错误的能力
应用ActionScript 2.0时, 许多表面上“完美无暇”的运行错误无法得到记载。这使得flash player无法弹出提示错误的对话框, 就象javascript语言在早期的浏览器中所表现的一样。也就是说, 这些缺少的错误报告使得我们不得不花更多精力去调试ActionScript 2.0程序。ActionScript 3.0 引入在编译当中容易出现的更加广泛的错误的情形, 改进的调试方式使得能够健壮地处置应用项目当中的错误。提示的运行错误提供足够的附注(例出出错的源文件)和以数字提示的时间线, 帮助开发者迅速的定位产生错误的位置。
对运行错误的处理方式
在ActionScript 2.0中,运行错误的注释主要提供给开发者一个帮助,所有的帮助方式都是动态的。而在ActionScript且是3.0中, 这些信息将被保存到一定的数量,Flash player将提供时间型检查以提高系统的运行安全。这些信息将记录下来用于监视变量在电脑中的运行情况, 以使得开发者能够让自己的应用项目得到改进以减少对内存的使用。
密封的类
ActionScript 3.0 将引入密封的类的概念。在编译时间内的的密封类拥有唯一固定的特征和方法,其它的特征和方法不可能被加入。这使得比较严密的编译时间检查成为可能, 创造出健壮的项目。因而它当然可以提高对内存的使用效率, 因为不需要为每一个对象实例增加内在的杂乱指令。当然动态类依然可以使用只要声明为dynamic的关键字。
代理方式
在ActionScript 3.0中事件处理变的更加简化归功于它的嵌入式代理方式。而在ActionScript 2.0中, 方法关闭后并没有记住什么对象事例引用了它们, 当调用已经关闭的方法时将导致意想不到的后果。 Mx.utils.Delegate 类经常被使用,使用它时, 你写了代码如下:
myButton.addEventListener(“click”, Delegate.create(this, someMethod)); Delegate.create(this, someMethod)
在AS3.0中,这个类不再需要被引入, 当方法关闭时将自动地记住它的原始对象实例。现在, 你可以简单地写为: myButton.addEventListener(“click”, someMethod);
ECMAScript 中的 XML (E4X)
ActionScript 3.0 特点之一是全面支持ECMAScript中的 XML (E4X), 最新的规范标准为ECMA-357 。E4X 提供一种自然, 流利的语言使得能够快速的构造XML 。而不是象传统XML的解析接口一样, E4X使得XML成为通用的数据类型。E4X 简化操作XML将大大的减少相当 数量的代码以适用应用项目需要的发展。在这个网站你能学到更多关于E4X 的规格:
www.ecma-international.org/publications/files/ECMA-ST/ECMA-357.pdf
规范的表达方式
ActionScript 3.0 引入支持通用规则使得能够迅速搜寻和快速的操作字符(串)。ActionScript 3.0实施规则定义在第三版的ECMAScript 语言说明书当中(ECMA-262) 。
命名空间(Namespaces)
Namespaces 是一种创新新机制用以控制声明的可见性。 Namespaces 与传统通过指定类型用以控制声明(公开的, 私有的, 保护的)是相似的 。他们本质是通过自定义路径, 能够使用你所选择的名字。Flex, 例如, 使用一mx_internal 命名空间为它的内部数据来源。命名空间使用统一的资源标识符(URI)以避免冲突 ,当与E4X一起使用时同样可以使用XML命名空间。
新的整数类型
ActionScript 2.0用Number定义有单精度数字类型和双精度浮点数字类型。受欢迎的新的Int数据类型将加入到ActionScript3.0当中。int是一个32位有符号整型数据类型, 使得CPU将提高ActionScript代码中处理整数运算的能力,int将提高循环运算以及几乎其它不带小数点的整数运算。另一个新的数据类型是uint, 一个与int相似的无符号32位整数型 。uint 主要用于表现象索颜色和其它一些int所不能很好工作的领域。
Flash Player 接口的特点
Flash player API 由一组类和功能组成以增强flash player容纳actionscript语言的能力。这种功能是在ActionScript 核心语言和空余的flash平台间建立起了一座桥梁。这将能大大的提高flash应用程序的能力以及对于核心语言来说将起到重要的补充作用。这里没有足够的空间来对API的细节进行详细的描述, 但这里有一张短名单列出一些新的和有趣的功能:
(1):DOM3 Event Model
DOM3事件模型提供一个标准方式发生和处置事件消息以使得对象在应用之间能够互动和通信, 维护状态和对变化产生回应。仿造 W3C DOM3 事件规格, 这个事件模型能够带来比早期的ActionScript版本中的系统事件更加清晰和高效的机制。 Flex程序构架应用和flash player API相同的DOM3事件模型,以至于系统事件从flash平台的顶端走到了末路。
(2):Display List API
显示屏的接口(API)由一组相关的能够表现出简单而生动flash动画的类组成。
新的(Sprite:调皮的,精灵之意。暂且译为闪灵) 闪灵类是一个轻量级选手,与MovieClip类相似,但比较适合于作为UI组件的基本类。新的形状类将取代旧的矢量形状。这些新的类能够应用新的操作方式自然的表现并且能够在任何时候都比自己的前辈(指旧的类和旧的方式)展现的更加有活力。
不再需要为对象指定深度。深度管理现在在flash player当中是自动建立的。新方法提供了可以为对象指定和管理Z轴。
当然, 这个ActionScript 3.0 概要只概述一些扣人心弦 的API的介绍 以及语言特色。当你更加深入学习AS3.0的时候你将发现更多 。当你想学习ActionScrip3.0如何实现应用项目设计时<<ActionScript 3.0编程 >>一书里将是你好的开始。 当然<<ActionScript 3.0 语言参考>> ActionScript 3.0 Language Reference )是AS3.0核心语言完整描述和flash player API细述的权威资料. 当然, 如果你已经对 ActionScript 1.0 或2.0比较熟悉,请查阅《学习ActionScript3.0捷径》(( Tips for Learning ActionScript 3.0. ) 。
Flash player的开发者非常兴奋能够在第一时间传递出这份语言预览, 它的新能力和改进的表现性能通过了Macromedia 实验室的试验。你能够嗅觉到 ActionScript 3.0将带入到Flex Builder 2,Flex Framework以及Flash Player 8.5当中。我希望你们能够和我们一样为flash 平台的未来而感动。 并且我们期待着你们在试验当中的反馈。
作者: Flash Player工程主管:Gary Grossman。
Flash player高级产品经理人:Emmy Huang 。