2011-05-24 366 views

回答

1

在AS3中,您可以更有策略地构建和组织您的应用程序lot。它比AS2更快,更整洁,也更受推荐。主要区别在于,您可以开发具有比AS2更强的OOP影响的Flash应用程序。

AS3使用Greensock的Tweenlite,Papervision 3D和box2d等第三方代码更容易。

在AS2中,你将不得不使用原型来混乱地实现AS3中的一个类可以为你做什么。例如:

AS2原型:可以用来作为基类为您的所有影片剪辑

MovieClip.prototype.flip = function():Void 
{ 
    this._rotation += 180; 
} 

AS3类:

package 
{ 
    import flash.display.MovieClip; 

    public class MyMovieClip extends MovieClip 
    { 
     public function flip():void 
     { 
      rotation += 180; 
     } 
    } 
} 

虽然有更多的代码中创建自己的班级,您现在可以扩展这个班级,只需从其中调用flip()即可运行flip()方法。在AS2中,您必须与您的MovieClip.prototype.flip()函数处于相同的范围才能访问它,这可能会导致混乱。

下面是创建一个影片剪辑,将其添加到舞台,然后让你的flip()功能的使用AS2和AS3比较:

AS3:

var mc:MyMovieClip = new MyMovieClip(); 
mc.flip(); 

addChild(mc); 

AS2 ::

MovieClip.prototype.flip = function():Void 
{ 
    this._rotation += 180; 
} 
var mc:MovieClip = attachMovie("your_library_mc", "newname", this.getNextHighestDepth()); 
mc.flip(); 
+0

ya谢谢。这对我很有帮助。 – Ramu 2011-06-02 05:54:26

4

除了更改库之外,Actionscript 3还是compil编辑并运行在完全不同的虚拟机(AVM2)上,该虚拟机从头开始重新编写。据报道,它编译的AS3代码比为AVM1虚拟机编译的代码脚本快10倍。

你应该为AS2和AS3的差异列表检查this doc,因为他们无法解释在SO :)

+2

而非技术性附录:AS2是传统语言,AS3是当前语言。添加到Flash播放器中的新功能通常不适用于AS2。 – fenomas 2011-05-25 09:23:38

0

任何更好,因为其他几个人都表示AS2和AS3是不同的语言,甚至可以在Flash Player,AVM和AVM2(Actionscript虚拟机)中的不同虚拟机上运行。

但是,大多数AS2代码都有直接的AS3代码,在时间轴代码中,名称通常是相同的(例如gotoAndPlay,stop等)。你可以在这里找到一个方便的备忘单: http://actionscriptcheatsheet.com/downloads/as3cs_migration.pdf 一般来说,如果没有AS3等同于你在AS2中拥有的AS3,那么就有更好更强大的方法。

还有一本书叫“The ActionScript 3.0 Migration Guide”,你可能也想看看。

您还可以通过LocalConnection使AS2和AS3代码相互通话。网上有很多关于这方面的指导。

相关问题