flash脚本as2.0和as3.0有什么区别啊

我现在学习的是2.0,以经学这个教程很长时间了,我是不是学会2.0之后,再学习3.0会容易点。... 我现在学习的是2.0,以经学这个教程很长时间了,我是不是学会2.0之后,再学习3.0会容易点。 展开
 我来答
billypc
2009-04-19 · TA获得超过1686个赞
知道小有建树答主
回答量:503
采纳率:0%
帮助的人:0
展开全部
首先,欢迎百度HI我,或者加百度群:1051316

问题一:
首先说下as2,as2实际上是as1的升级版,引入一面向对象的概念,但并不是完全面向对象的语言,只是在编译过程中支持OOP语法。as2的面向对象虽然不全面,但是却是首次将OOP带到了FLASH,而AS3是一个完全基本OOP的标准化面向对象语言,最重要的就是as3不是as2的简单升级,而完全是两种思想的语言。可以说,as3全面采用了面向对象的思想,而as2则仍然停留在面向过程阶段,举个例子,就像VB和C#的感觉。

所以as3绝不是as2的升级版,在as3里,可以看到java和c#的影子,确实,这三种语言大部分思想都是一致的,只有一些小的区别,比如as3引入了命名空间的概念,但是不支持比如委托,在包封装及外部访问上也引入了一些新概念。
在编译阶段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起avm1也快了10倍。还提供了异常处理。以前我们在使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。如果做个对比,我想说,AVM1就是大刀长矛,而AVM2就是手枪,大刀和长矛也能杀敌,但是只在面对弱智的敌人才能发挥作用,面对一个大型项目,不用点现代化工具是不行滴。

as2与as3的部分区别,只说一些大的区别,小的不同太多,就不谈了:
1.运行时异常机制处理,这个刚才说过了。

2.事件机制,这也是很多人拿起as3就不知所措的原因,初学者会发现连一个按钮点击的方法都写不出来。实际上as3的事件机制采用的是监听的方式,和as2onClipEvent不同,as3里所有的事件都是需要触发器,监听器,执行器三种结构的,这样做的好处就是使得这个语言非常的坚强,非常大标准化。不像as2,奇形怪状的代码漫天飞,可以这样写,也可以那样写,代码变得繁复难懂,可读性太差,执行效率也大大降低。要特别说明的是,as3的所有事件都直接继承event对象,而event是直接继承自BOSS类object,结构多么完美。所以在as3中,所有的事件都继承自相同的父亲,结构相同,提高了重用性。

3.封装性,这是as3与as2最大的不同,as3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。

4.XML,我觉得这是最令人激动人心的改变,现在as3程序员可以很轻松也很自豪的说,我们是使用XML人群中最快乐的人。AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。

(写了这么多,如果楼主不给分,我就死给你看!)

5.最关键的一点,容器的概念,AS3采用了容器的思想,告别了as2一个MovieClip打天下的局面。对于as2程序员来说,可能不能理解,我mc用的好好的,干嘛不让我用啊。但是当你真正的了解as3的思想的时候,当你真主的体会到OOP的好处的时候,你会觉得as3的容器的思想的完全正确的。as2时代,我们做什么都用mc,而as2时代的mc也是直接继承自object,这给了mc极大的权限,极其多大方法属性,而有时我们只需要放一个背景图,这样做就造成了极大的浪费。说实在话as2和as3比起来就是浪费之神,所以as2编出的swf绝对比as3编译出来的swf要大上几倍。as3把所有你用到的显示对象都分开,mc的属性方法都被瓜分开来,举个例子,你去水果超市买水果,就肯定比直接去大型超市买要方便,更节约时间,时间就是金钱,那就是很大的节省。

当然还有很多不同,如果想继续交流,可以联系我。

问题二:
以as3为例,在变量命名方便基本和java c#一样,都分为值类型和引用类型,唯一有一点不太相同,不过在使用过程中,不对使用造成影响。java的值类型都不是对象,c#的值类型都是system下的对象,而且都是别称,如int其实就是System.Int32,而as3中完全遵循OOP,一切都是对象,每个值类型都是对象,比如int就有int类。但在使用过程中都是一样的,从这里也可以看出OOP的好处,你不需要关心底层的变化,使用的时候也完全感觉不到底层存在什么区别。

问题三:
关于学习的问题,我的建议是,学新东西,首先要有毅力,不要去看电子书,要买实体书看,要做笔记,能不能学会一种知识,不是从什么地方学的问题,而是学习方法的问题。学习方法不对,不管有多好的老师也教不出好学生。学习的问题我也和很多热爱学习的同志们说过,关键靠自己。
好的学习方法,我总结大致因该具备以下条件:
1.坚持看书,一本书至少看过3遍(注:指实体书,而非电子书)
2.坚持做笔记,加强记忆。
3.如果是初学者,我建议抄程序,培养程序感,必要时可以背默关键字。

祝你成功
匿名用户
2009-04-19
展开全部
一楼的分明就是人云亦云,不学无术的家伙
2.0跟3.0的区别太大了,如果你有时间能兼顾的话,当然好,
如果不行的话,只选择一个吧,
如果你2.0学得很好,加上有其它OO语言的学习经历的话,3.0的学习就事半功倍了

如果你没OO语言的基础,学3.0可能会有一定困难 加油吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毛公乡的苦命娃
2009-04-18 · TA获得超过2117个赞
知道大有可为答主
回答量:2003
采纳率:0%
帮助的人:1834万
展开全部
错了。
先学AS3.0,你会知道AS2.0是垃圾堆里面的东西了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
模拟超人
2009-04-18 · TA获得超过1.9万个赞
知道大有可为答主
回答量:3.6万
采纳率:41%
帮助的人:2.5亿
展开全部
是2种完全不同的东西。。。
垃圾堆。。怎么说话的,照你这么多很多人都是捡垃圾的了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式