Flash AS3 相对于AS2 新的特性和改动

本文介绍了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 程序运行结果

时间: 2024-12-01 23:37:00

Flash AS3 相对于AS2 新的特性和改动的相关文章

Flash AS3学习笔记

笔记 首先 say hello 一下,在输出面板 trace 出 "Hello World!".复习一下AS2的类代码: class net.eidiot.learnAS3.HelloAs2{    public function HelloAs2(){        trace("Hello World!");    }} 为了让这段代码工作,需要在Flash IDE里场景的第一帧输入代码: import net.eidiot.learnAS3.HelloAs2;

Flash AS3.0 强大的事件机制

ActionScript 3.0系列教程(4):爽快使用XML ActionScript 3.0系列教程(5):强大的事件机制 回顾和比较 AS1.0玩家最爱用onClipEvent(), on(),又方便又直接.缺点在于逻辑分散到了各个舞台元件中,难以管理和维护.更加别说代码重用了.别跟俺说可以Copy, Paste,这不叫重用,这叫低级. AS2.0中,增加了一些事件处理机制: (1)回调函数: onLoad, onComplete等.相信兄弟们最熟悉的应该就是XML.onload回调函数了

Flash AS3简单制作美女图片缓动特效gif动画

  Flash AS3简单制作美女图片缓动特效gif动画过程,本教程主要适合初学者,希望大家练习,可以先看下相关文章:Flash AS3简单制作图片变成百叶窗特效教程 制作步骤: 新建立文档,调整文档属性,如下图设置: 和上一个实例教程一样,导入一个图片是影片剪辑,然后制作一个文字按钮,设置如下: 然后再建立一个新图层,在第一帧中添加如下代码: 代码如下: import fl.transitions.*; import fl.transitions.easing.*; myButton.addE

Flash AS3简单制作图片变成百叶窗特效教程

  Flash AS3简单制作图片变成百叶窗特效方法,适合初学者的教程,希望大家能练习! 图片百叶窗特效: 制作过程: 任意选择一个图片,当做本例动画中的图片,我们将使该图片达到百叶窗动画特效. 然后按Ctrl+J修改文档的属性,设置任何颜色为背景都可以,大小调整到和自己选择的图的大小一样大就可以了,幁频设置为38fps 就可以. 把图层1命名为photo,把外部准备的图片导入到舞台,然后按F8转变为原件,类型是影片剪辑, 然后拖拽到舞台,打开属性面板,设置如下: 然后创建一个新图层,绘制一个文

Flash AS3制作茶杯震动gif动画效果

 下面小编就为大家介绍Flash AS3制作茶杯震动gif动画效果,教程很不错哦,也很简单,一起来学习吧! 效果如下:(用鼠标指向右侧的茶壶可以看到震动效果) 制作过程如下: 首先准备一个图片当做背景,如下: 然后再建立一个新图层,导入一个茶壶素材,然后把它转变为影片剪辑,之后命名实例名字. 目前存在两个图层,然后我们再新建立一个放置ACTION的图层,代码如下:   代码如下: var coordX:Number = shaker_mc.x;  var coordY:Number = shak

Flash AS3制作个性的旋转圆形网页导航

核心提示:Flash AS3制作个性的旋转圆形网页导航教程. Flash AS3制作个性的旋转圆形网页导航. 1.用矩形工具绘制一个黑色的矩形,转换为MC影片剪辑,打开属性窗口 2.双击这个影片剪辑编辑它,使用文本工具,设置为动态文本,绘制一个区域,设置颜色是白色,命名实例名为abelBtn. 3.回到场景1,删除掉刚刚建立的影片剪辑. 4.我们选择第一帧,然后打开动作面板,输入下面代码,主要是为了导入Tweenlite engine. import com.greensock.*; impor

Flash AS3.0实现逼真喷泉效果

核心提示:Flash AS3.0实现逼真喷泉效果教程. 我们将介绍利用速度向量和重置对象的技巧来实现喷泉效果.所谓向量就是有方向的量.比如一辆车从东向西以80公里每小时的速度行驶,那么我们就可以得到汽车的速度向量,它包括两个元素:速度,每小时80公里,方向,由东向西. 下面我们来分析一下喷泉是怎样形成的? 喷泉是若干个水珠向上喷射,然后又受重力影响掉回地面.这个过程的速度向量有哪些,具体又是怎么的呢?很容易发现至少的两个力,一个是使水珠向上喷射的外力,一个是使水珠掉回地面的重力. 外力的速度向量

Flash AS3.0菜鸟学飞教程代码的位置

早期版本的ActionScript代码可以写在帧.按钮.影片剪辑.as文件等位置,而Flash AS3.0代码的位置发生了重大的改变,只能写在帧及as文件中. 虽然Flash AS3.0支持把代码写在时间轴中,但在实际应用中,如果把很多的代码放在时间轴中,会导致代码很难管理.或者说,用类来组织大量的代码更为合适,因为类代码都是放在as文件中的. 除了把代码放在时间轴上,还可以把代码放在外部文件中,比如,放在服务器的txt文件中,然后把这些外部数据加载到fla文件里. 外部文件代码 以往都是在时间

Flash AS3.0构建简单的声音可视化程序(波型图)

本例为Flash AS3.0实例教程,在教程中我们将学习运用SoundMixer.computeSpectrum() 方法来构建简单的声音可视化程序(即波形图),希望能给朋友们带来帮助~~ AS3.0构建简单的声音可视化程序(波型图): 开发"> 使用 SoundMixer.computeSpectrum() 方法来显示声音波形图: import flash.display.Graphics; import flash.events.Event; import flash.media.So