Flash ActionScript 3 新特性与变化

  本文介绍了ActionScript 3 相对于 ActionScript 2 有哪些新的特性和改动。并在文章的最后一步步的教大家如何利用 Flex Builder 来编译并运行第一个 AS3 程序。

  语法方面的增强和改动:

  引入了 package(包) 和 namespace(命名空间) 两个概念。其中 package 用来管理类定义,防止命名冲突,而 namespace 则用来控制程序属性方法的访问。
  新增内置类型 int (32比特整数),uint(非负32比特整数),用来提速整数运算;
  新增 * 类型标识,用来标识类型不确定的变量,通常在运行时变量类型无法确定时使用。在 AS2 中这种情况下需要用 Object 赖作为类型表识;
  新增 is 和 as 两个运算符来进行类型检查。其中 is 代替 AS2 中的 instanceof 来查询类实例的继承关系,而 as 则是用来进行不抛错误的类型转换。
  新增 in 运算符来查询某实例的属性或其prototype中是否存在指定名称的属性。
  新增 for each 语句来循环操作 Array 及 Object实例。
  新增 const 语句来声明常量。
  新增 Bound Method 概念。当一个对象的方法被付值给另外一个函数变量时,此函数变量指向的是一个 Bound Method,以保证对象方法的作用域仍然维持在声明此方法的对象上。这相当于 AS2 中的 mx.util.Delegate 类,在 AS3 中这个功能完全内置在语言中,不需要额外写代码。
  AS3 的方法声明中允许为参数指定默认值(实现可选参数)。
  AS3 中方法如果声明返回值,则必须明确返回。
  AS2 中表示方法没有返回值的 Void 标识,在 AS3 中变更为 void。

  OOP方面的增强

  通过类定义而生成的实例,在 AS3 中是属于 Sealed 类型,即其属性和方法无法在运行时修改。这部分属性在 AS2 中是通过类的 prototype 对象来存储,而在 AS3 中则通过被称为 Trait 的概念对象存储管理,无法通过程序控制。这种处理方式一方面减少了通过 prototype 继承链查找属性方法所耗费的时间(所有父类的实现方法和属性都会被直接复制到对应的子类的 Trait 中),另一方面也减少了内存占用量,因为不用动态的给每一个实例创建 hashtable 来存储变量。如果仍然希望使用 AS2 中类实例在运行时的动态特性,可以将类声明为 dynamic。

  API方面的增强

  新增 Display API,使 AS3 可以控制包括 Shape, Image, TextField, Sprite, MovieClip, Video, SimpleButton, Loader在内的大部分 DisplayList 渲染单位。这其中 Sprite 类可以简单理解为没有时间轴的 MovieClip,适合用来作为组件等不需要时间轴功能的子类的基础。而新版的 MovieClip 也比 AS2 多了对于 Scene(场景)和 Label(桢标签)的程序控制。另外,渲染单位的创建和销毁通过联合 new 操作符以及 addChild/removeChild 等方法实现,类似 attachMovie 的旧方法已被舍弃,同时以后也无须去处理深度值。

  新增 DOM Event API,所有 在DisplayList 上的渲染单位都支持全新的三段式事件播放机制,以 Stage 为起点自上而下的播报事件到 target 对象(此过程称为 Capture Phase),然后播报事件给 target 对象(此过程称为 Target Phase),最后在自下而上的播报事件(此过程称为 Bubbling Phase)。
新增内置的 Regular Expressions (正则表达式)支持,使 AS3 能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式。
新增 ECMAScript for XML (E4X) 支持。 E4X 是 AS3 中内置的 XML 处理语法。在 AS3 中 XML 成为内置类型,而之前的 AS2 版本 XML 的处理 api 转移到 flash.xml.* 包中,以保持向下兼容。

  新增 Socket 类,允许读取和写入二进制数据,使通过 AS 来解析底层网络协议(比如 POP3, SMTP, IMAP, NNTP 等)成为可能,使 Flash Player 可以连接邮件服务器和新闻组。

  新增 Proxy 类来替代在 AS2 中的 Object.__resolve 功能。

  新增对于 Reflect (反射)的支持,相关方法在 flash.util.* 包中。

  编写第一个 AS3 程序

  编译 AS3 需要先安装 Flex Builder 2(目前唯一支持 AS3 的 IDE),从 Adobe Labs 上下在最新版本的 Flex Builder。然后一路 Next 安装成功之后,点击快捷方式启动 Flex Builder。(如图一)

图一 Flex Builder 2 启动画面

  点选工具栏中的 New 按钮,从弹出的菜单中选择 ActionScript Project。(如图二)

图二 建立新的 ActionScript Project

  在弹出的对话框中输入 helloworld 作为项目名称。然后按 Finish 确定。(如图三)

图三 输入项目详细信息

  在新打开的 helloworld.as 文件中输入下列代码:(如图四)

图四 helloworld.as 代码内容

  按 Ctrl+S 保存文件,然后从工具栏中点击 run 按钮运行程序。(如图五)

图五 运行程序

  最终在浏览器中的运行效果如图六:

图六 helloworld 程序运行结果

  参考资料

  Adobe Labs 网站上有关于 AS3 的最新介绍。
  ActionScript 3.0 Language Specification 中有关于 AS3 语言规范细节方面的信息。
  下载开源的 AS3 项目源代码,包括 MD5 hash,UnitTest,JSON 解析等多个项目。
  查看关于 AS3 各方面的问答。

时间: 2024-10-29 08:58:35

Flash ActionScript 3 新特性与变化的相关文章

Flash Player 8 新特性效果演示集锦

许多人已使用 FlashMX2004 创作出一些Flash 8很棒的演示效果,试验着Flash Player8的新特性. 下面是对一些效果的追踪及部分flash效果的源文件下载,我们将继续不断更新,请大家关注. 观看本文Flash演示,您需要下载并安装Flash Player 8.0 Beta版: 太平洋下载:Flash Player for Windows v8 Beta 官方下载:Macromedia Flash Player for Windows v8 Beta 在线转换Flash v7

Flash MX 2004新特性

Flash MX的最新版本名命名为Flash MX 2004,分为专门面向设计者的Flash MX 2004和专门面向开发者的Flash MX 2004 Professional. 下面我们分别介绍Flash MX 2004和Flash MX 2004 Professional两个版本的共有特性以及Flash MX 2004 Professional的特性. 具体请访问 Macromedia官方网站介绍http://www.macromedia.com/software/flash/produc

Flash MX 2004新特性实例学习一

    Flash MX 2004的试用版终于可以下载了,它帮助文件中自带的例子很好地反映了2004中新增加的功能.下面我们通过学习这些例子的制作,来熟悉在2004中新增加的功能.这些例子都是从Flash MX 2004的帮助文档中来的.在我的windows2000中的保存路径是C:Documents and SettingsAdministratorLocal SettingsApplication DataMacromediaFlash MX 2004enConfigurationSampl

Flash MX 2004新特性实例学习五

   实例六.Text Enhancements 一.涉及特性 在实例中,主要涉及在Flash MX 2004中引用和显示外部的css文件和html文件.这些都是在Flash MX 2004中才有的新特性,应用也非常方便.本实例在Flash MX 2004中的操作非常简单,不过这正从侧面反映了它的功能强大. 二.制作过程 1.建立一个文件,命名为sample.css.其内容如下: headline { font-family: Arial,Helvetica,sans-serif; font-s

Flash MX 2004新特性实例学习四

    实例五.News Reader 一.涉及特性 本实例主要涉及数据绑定和组件的编程.数据绑定是在Flash MX 2004中才有的新功能,据称不用编程,只需设置几个组件的属性,就可以实现与服务器端的数据交互功能,也算是一大突破了.另外,由于在实例中没有提供相应的xml文件,所有字段都要手工输入,所以本实例的制作过程显得有些繁琐,请在制作过程中仔细检查每一个字段. 二.制作过程 1.从组件面板中拖一个List组件到场景中,命名为"articles",设置"multiple

Flash MX 2004新特性实例学习二

    实例三.Customizing Context Menu 一.涉及特性 这个实例反映了Flash MX 2004在编程方面的重大改进.其中包括了as文件的应用,系统的_global.$clipboard变量的使用,ContextMenu(menufun) 函数的调用,ContextMenuItem()函数的调用,已经MovieClip.prototype.menu变量的使用.通过这几个函数和变量的操作,就可以轻松地操作Flash Player中的菜单了. 二.制作过程 1.新建一个Act

Flash MX 2004新特性实例学习三

    实例四.Device Font Masking 一.涉及特性 本实例主要涉及遮照效果的制作和Scroll Pane组件的利用,都是一些有趣的特性,跟之前在Flash MX中的制作思路有比较大的不同.初初一看,文本内容都在图库当中,但让人迷惑的是在场景中会显示文本的内容.这就涉及到Scroll Pane组件的属性了. 二.制作过程 1.按"Ctrl + F8"新建一个Clip,命名为"textClip",类型为Movie Clip,选取"Export

Flash Builder 4新特性试用

大家都知道,我们可以通过Flex Component Kit, 将Flash内容(动画.皮肤.组件.容器等)添加到Flex 应用中,如果使用Flash Builder 4,这个工作流程将变得更简单. 1.安装Flex Component Kit for Flash CS4. 2.从组件面板上拖曳新建Flash组件或者新建Flash容器项到设计画布上,如图所示. 1   3.双击占位图标或者在Adobe Flash中创建,弹出下图窗口,设置类名和swc文件名,单击打开Flash Professio

Flash 8新特性开发实例教程

教程 flash 8 新特性的 API 开发实例教程-flash动画实例教程"> 看看上图,flash8特性的API主要集中在下面4块1 图形效果[Filters]多种和滤镜有关的类,可以将阴影,模糊这些特效加到你的 mc上.[Geometry Classes]提供了 Matrix, Point, Rectangle and ColorTransforms 等各种颜色变换效果[MovieClip Extensions ]除了可以让mc可以利用Filter,geometry外.还提供了 [B