【问题标题】:How to know if actionscript 1, actionscript 2, or actionscript 3?如何知道是动作脚本 1、动作脚本 2 还是动作脚本 3?
【发布时间】:2010-12-20 08:08:40
【问题描述】:

我没有具体的代码示例,但是有没有一种通用的方法来猜测代码 sn-p 是什么版本的 Actionscript:1 或 2 或 3?

我在某处读到,如果它是时间轴中的代码,它被认为是 Actionscript 1。

【问题讨论】:

    标签: flash actionscript-3 actionscript actionscript-2


    【解决方案1】:

    更新:我对 AS1/2 的经验有限,这是基于我在 AS 论坛上看到的。从 cmets 看来,事件处理的第二种和第三种方法在 AS1 和 AS2 中都有效。

    处理事件的语法不同:

    动作脚本 3

    addEventListener(MouseEvent.MOUSE_UP, handleClick);
    private function handleClick(e:MouseEvent):void
    {
      //Just do it
    }
    

    动作脚本 2

    onRelease = function():Void{ //it's not void - it's Void
      //do something
    }
    

    动作脚本 1

    on(release){
      //do something
    }
    

    此页面可能对您有所帮助:Migrating from AS2 to AS3

    AS3 添加新子代的方式是new 后跟addChild

    var s:Sprite = new Sprite();
    var tf:TextField = new TextField();
    this.addChild(s);
    s.addChild(tf);
    

    以前是 createMovieClipcreateTextField 方法 - 但不确定确切的版本。

    _root.createTextField("mytext",1,100,100,300,100);
    //that is name, depth, x, y, width, height
    mytext.multiline = true;
    mytext.wordWrap = true;
    mytext.border = false;
    

    之前,如果您拥有子类的name 属性,则即使父类没有名为childName 的属性,您也可以使用parent.childName 从父类访问子类。在 AS3 中,只有当父类有一个名为 childName 的属性(具有适当的类型)并且您已经为它分配了子类的引用(或者您已经在动态类 MovieClip 上创建了该属性)时,才有可能。有getChildByName() - 但它会返回具有给定名称的第一个孩子(并且在孩子列表中可能有重复的名字)。

    【讨论】:

    • 实际上你的第二个和第三个 sn-ps 在 AS1 和 AS2 中都有效。
    • 我不相信 AS2 sn-p 在 AS1 中有效,但 AS1 sn-p 在 AS2 中有效。但是,我没有任何实际测试的方法。
    • onRelease = function()... 在 Flash 6 中完全有效,并且在 Flash 7 中引入了 AS2 ;)
    • 感谢指正。我在 AS1/2 上的经验是有限的 - 在帖子中添加了细则。
    • 尽管 ^^ ":Void" (数据类型) 是 AS2-only
    【解决方案2】:

    AS3 和 AS1/2 之间有很多不同之处,在大多数情况下您会立即看到(在 AS3 中查找 addChild 和 addEventListener)。 然而,AS1 和 AS2 之间的区别远不那么明显,但可能最相关的语言是引入“类”概念以及用于 OOP 开发的一些语句和关键字(类、公共、私有等...... )。

    编辑:看,维基百科解释得更好:

    2003–2006:ActionScript 2.0 下一个 语言的重大修订, ActionScript 2.0,在 2003 年 9 月发布 Flash MX 2004 及其对应的 播放器,Flash Player 7。响应 用户对语言的需求更好 配备更大和更复杂的 应用程序,ActionScript 2.0 特色编译时类型检查 和基于类的语法,例如 关键字类和扩展。 (尽管 这允许更结构化 面向对象的编程方法, 代码仍将编译为 ActionScript 1.0 字节码,允许它 用于前面的 Flash 玩家 6 也一样。换句话说, 基于类的继承语法是 层在现有的之上 基于原型的系统。) ActionScript 2.0,开发人员可以 将变量约束为特定类型 通过添加类型注释,以便 类型不匹配错误可以在 编译时。 ActionScript 2.0 也 引入基于类的继承 语法,以便开发人员可以创建 类和接口,就像它们一样 将使用基于类的语言,例如 Java 和 C++。这个版本符合 部分归于 ECMAScript 第四 版本草案规范。

    http://en.wikipedia.org/wiki/ActionScript#ActionScript_2.0

    【讨论】:

      【解决方案3】:

      嗯,在时间轴中有代码的不仅仅是 ActionScript 1。但是检查您正在编码的版本的一种简单快捷的方法是单击一个框架(是否为空)并按 F9。它会在左侧说它是什么版本(我很确定..):)

      【讨论】:

        猜你喜欢
        • 2010-12-09
        • 2016-03-27
        • 2016-01-23
        • 2015-09-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多