如何确定使用的是ActionScript 1、ActionScript 2还是ActionScript 3?

4

我没有具体的代码示例,但有没有一种通用的方法来猜测代码片段的Actionscript版本:1或2或3?

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

3个回答

7
更新:我的AS1/2经验有限,以下内容基于我在AS论坛上的观察。从评论中可以看出,第二种和第三种事件处理方法在AS1和AS2中都是有效的。
事件处理语法不同:
ActionScript 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
}

ActionScript 1

on(release){
  //do something
}

您可能会发现这个页面很有帮助:从AS2迁移到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()方法 - 但它将返回具有给定名称的第一个子元素(可能在子元素列表中存在重复名称)。

2
你的第二个和第三个片段在AS1和AS2中都是有效的。 - Cay
1
我不相信AS2代码片段在AS1中是有效的,但AS1代码片段在AS2中是有效的。然而,我没有任何实际测试的方法。 - Alex Jillard
1
onRelease = function()... 在 Flash 6 中是完全有效的,而 AS2 是在 Flash 7 中引入的 ;) - Cay
1
感谢更正。我对AS1/2的经验有限 - 我在帖子上添加了一段细则。 - Amarghosh
1
":Void"(数据类型)只在AS2中使用^^ - Cay

2
AS3和AS1/2之间有很多区别,在大多数情况下,您会立即看到它(在AS3中查找addChild和addEventListener)。 然而,AS1和AS2之间的差异要少得多,但从语言角度来看,最相关的可能是引入“类”概念以及一些用于面向对象开发的语句和关键字(class、public、private等)。 编辑:看,维基百科解释得更好:
2003年至2006年:ActionScript 2.0。语言的下一个重大修订,ActionScript 2.0,在Flash MX 2004的发布及其对应的播放器Flash Player 7上推出,时间为2003年9月。由于用户需求需要一种更适用于更大更复杂的应用程序的语言,因此ActionScript 2.0具有编译时类型检查和基于类的语法,例如class和extends关键字。(虽然这允许更结构化的面向对象编程方法,但代码仍会被编译为ActionScript 1.0的字节码,从而使其也可用于之前的Flash Player 6。换句话说,基于类的继承语法是现有的基于原型的系统之上的一层。)使用ActionScript 2.0,开发人员可以通过添加类型注释将变量限制为特定类型,以便在编译时找到类型不匹配的错误。ActionScript 2.0还引入了基于类的继承语法,使开发人员可以创建类和接口,就像在基于类的编程语言(如Java和C ++)中一样。该版本部分符合ECMAScript第四版草案规范。

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


0

嗯,时间轴上的代码不仅限于ActionScript 1。但是,检查你正在编写的版本的简单快捷方法就是点击一个帧(空的或非空的)并按F9键。它会在左侧显示版本号(我很确定..):)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接