如何知道动作脚本1,动作脚本2或动作脚本3?

per*_*rez 4 flash actionscript actionscript-2 actionscript-3

我没有特定的代码示例,但有一般方法可以猜测代码片段的ActionScript版本是什么:1还是2或3?

我读到某个地方,如果它是时间轴中的代码,它被认为是Actionscript 1.

Ama*_*osh 7

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

处理事件的语法是不同的:

ActionScript 3

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

ActionScript 2

onRelease = function():Void{ //it's not void - it's Void
  //do something
}
Run Code Online (Sandbox Code Playgroud)

ActionScript 1

on(release){
  //do something
}
Run Code Online (Sandbox Code Playgroud)

您可能会发现此页面很有用:从AS2迁移到AS3

AS3添加新孩子的方式new紧随其后addChild

var s:Sprite = new Sprite();
var tf:TextField = new TextField();
this.addChild(s);
s.addChild(tf);
Run Code Online (Sandbox Code Playgroud)

它曾经是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;
Run Code Online (Sandbox Code Playgroud)

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

  • 实际上你的第二和第三个片段在AS1和AS2都有效. (2认同)