【问题标题】:What is the difference between ActionScript 2.0 and ActionScript 3.0ActionScript 2.0 和 ActionScript 3.0 有什么区别
【发布时间】:2011-08-31 15:44:01
【问题描述】:

版本之间的主要区别是什么?

【问题讨论】:

    标签: actionscript-3 actionscript actionscript-2


    【解决方案1】:

    在 AS3 中,您可以更有策略地大量 构建和组织您的应用程序。它比 AS2 更快、更整洁且更值得推荐。主要区别在于您可以开发具有比 AS2 更强大的 OOP 影响力的闪存应用程序。

    AS3 让使用第三方代码变得更加容易,例如 Greensock 的 Tweenlite、Papervision 3D 和 box2d。

    在 AS2 中,您必须使用原型来混乱地实现类在 AS3 中可以为您做的事情。示例:

    AS2 原型:

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

    可用作所有 MovieClip 的基类的 AS3 类:

    package
    {
        import flash.display.MovieClip;
    
        public class MyMovieClip extends MovieClip
        {
            public function flip():void
            {
                rotation += 180;
            }
        }
    }
    

    虽然在创建您自己的类时需要更多代码,但您现在可以扩展该类并简单地从其中调用flip() 来运行flip() 方法。在 AS2 中,您必须与 MovieClip.prototype.flip() 函数在同一范围内才能访问它,这可能会导致混乱。

    这是创建 MovieClip、将其添加到舞台然后使用您的 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();
    

    【讨论】:

      【解决方案2】:

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

      您应该查看this doc 了解 AS2 和 AS3 之间的差异列表,因为在 SO 上无法更好地解释它们:)

      【讨论】:

      • 还有一个非技术性附录:AS2 是传统语言,AS3 是当前语言。添加到 Flash 播放器的新功能通常无法从 AS2 中使用。
      【解决方案3】:

      正如其他一些人所说,AS2 和 AS3 是不同的语言,甚至可以在 Flash 播放器、AVM 和 AVM2(Actionscript 虚拟机)中的不同虚拟机上运行。

      但是,大多数 AS2 代码具有直接的 AS3 等效项,并且在时间线代码的情况下,名称通常相同(例如 gotoAndPlay、stop 等)。你可以在这里找到一个方便的备忘单: http://actionscriptcheatsheet.com/downloads/as3cs_migration.pdf 通常,如果没有与您的 AS2 中的 AS3 等效的 AS3,则可以使用更好、更健壮的方法来代替。

      还有一本名为“ActionScript 3.0 迁移指南”的书,您可能也想看看。

      您还可以通过 LocalConnection 使 AS2 和 AS3 代码相互通信。网络上有很多关于此的操作方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-07
        • 2011-07-03
        • 2012-12-24
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        相关资源
        最近更新 更多