选择显示字体大小

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.* 包中。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons