从 AS2 到 AS3
[ 2008-10-22 20:43:03 | 作者: 十二 ]
随着Flash CS3正式版的发布,越来越多的朋友开始从AS2迁移到AS3了。总的来说AS2是AS1的升级版,引入面向对象(OOP)的概念,但并不是完全面向对象的语言,只是在编译过程中支持OOP语法。AS2的面向对象虽然不全面,但却是首次将OOP带到了FLASH,而AS3是一个完全基本OOP的标准化面向对象语言,最重要的就是AS3不是AS2的简单升级,而完全是两种思想的语言。可以说,AS3全面采用了面向对象的思想,而AS2则仍然停留在面向过程阶段,举个例子,就像VB和C#的感觉。
所以AS3绝不是AS2的升级版,在AS3里,可以看到JAVA和C#的影子,确实,这三种语言大部分思想都是一致的,只有一些小的区别,比如AS3引入了命名空间的概念,但是不支持比如委托,另外AS3在包封装及外部访问上也引入了一些新概念。下面浅谈几点AS2和AS3的主要区别~
1、异常机制处理
在编译阶段,AS2采用的是AVM1(ActionScript Virtual Machine),而AS3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起AVM1也快了10倍,还提供了异常处理。以前我们在使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。
2、事件机制
AS3的事件机制采用的是监听的方式,和AS2的onClipEvent()不同,AS3里所有的事件都是需要触发器、监听器、执行器三种结构的。这样做的好处就是使得这个语言标准化。不像AS2代码繁复难懂,可读性太差,执行效率也低。要特别说明的是,AS3的所有事件都直接继承Event对象,而Event是直接继承自父类Object,提高了重用性。
3、封装性
这是AS3与AS2最大的不同,AS3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。
4、XML
AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。
5、容器
AS3采用了容器的思想,告别了AS2一个MovieClip打天下的局面。AS2时代,MC也是直接继承自Object,这给了MC极大的权限和方法属性,而有时我们只需要放一个背景图,势必是一种浪费,所以AS2编出的SWF绝对比AS3编译出来的SWF要大上几倍。
评论Feed: http://www.teadays.com/Blog/feed.asp?q=comment&id=123
所以AS3绝不是AS2的升级版,在AS3里,可以看到JAVA和C#的影子,确实,这三种语言大部分思想都是一致的,只有一些小的区别,比如AS3引入了命名空间的概念,但是不支持比如委托,另外AS3在包封装及外部访问上也引入了一些新概念。下面浅谈几点AS2和AS3的主要区别~
1、异常机制处理
在编译阶段,AS2采用的是AVM1(ActionScript Virtual Machine),而AS3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起AVM1也快了10倍,还提供了异常处理。以前我们在使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。
2、事件机制
AS3的事件机制采用的是监听的方式,和AS2的onClipEvent()不同,AS3里所有的事件都是需要触发器、监听器、执行器三种结构的。这样做的好处就是使得这个语言标准化。不像AS2代码繁复难懂,可读性太差,执行效率也低。要特别说明的是,AS3的所有事件都直接继承Event对象,而Event是直接继承自父类Object,提高了重用性。
3、封装性
这是AS3与AS2最大的不同,AS3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。
4、XML
AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。
5、容器
AS3采用了容器的思想,告别了AS2一个MovieClip打天下的局面。AS2时代,MC也是直接继承自Object,这给了MC极大的权限和方法属性,而有时我们只需要放一个背景图,势必是一种浪费,所以AS2编出的SWF绝对比AS3编译出来的SWF要大上几倍。
[最后修改由 十二, 于 2008-11-21 20:57:53]
评论Feed: http://www.teadays.com/Blog/feed.asp?q=comment&id=123
这篇日志没有评论.



