Flash 如何知道是actionscript 1、actionscript 2还是actionscript 3?

Flash 如何知道是actionscript 1、actionscript 2还是actionscript 3?,flash,actionscript-3,actionscript,actionscript-2,Flash,Actionscript 3,Actionscript,Actionscript 2,我没有具体的代码示例,但是有没有一种通用的方法来猜测代码片段是什么版本的Actionscript:1、2或3 我在某个地方读到,如果它是时间线中的代码,则被视为Actionscript 1。更新:我对AS1/2的经验有限,这是基于我在论坛中看到的内容。从评论来看,第二和第三种事件处理方法似乎在AS1和AS2中都有效 处理事件的语法不同: 动作脚本3 addEventListener(MouseEvent.MOUSE_UP, handleClick); private function handl

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


我在某个地方读到,如果它是时间线中的代码,则被视为Actionscript 1。

更新:我对AS1/2的经验有限,这是基于我在论坛中看到的内容。从评论来看,第二和第三种事件处理方法似乎在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
}
您可能会发现此页面很有帮助:

AS3添加新子项的方法是
new
,然后是
addChild

var s:Sprite = new Sprite();
var tf:TextField = new TextField();
this.addChild(s);
s.addChild(tf);
它以前是
createMovieClip
createTextField
方法,但不确定确切的版本

_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
属性,则可以使用
parent.childName
从父类访问子类,即使父类没有名为
childName
的属性。对于AS3,只有当父类有一个名为
childName
(适当类型)的属性,并且您已经为该属性指定了子类的引用(或者您已经在动态类
MovieClip
上创建了该属性)时,才有可能。有
getChildByName()
-但它将返回具有给定名称的第一个子项(并且子项列表中可能有重复的名称)。

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

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

2003年至2006年:下一代ActionScript 2.0 语言的重大修订, ActionScript2.0于年推出 2003年9月发布 flashmx2004及其相应版本 播放器,Flash播放器7。作为回应 用户对更好语言的需求 装备更大更复杂 应用程序,ActionScript 2.0 特色编译时类型检查 和基于类的语法,例如 关键词类和扩展。(而 这使得一个更加结构化的系统得以实现 面向对象编程方法, 代码仍将编译为 ActionScript 1.0字节码,允许 在前面的闪存上使用 玩家6也一样,换句话说 基于类的继承语法是一种 层位于现有的 基于原型的系统设计 ActionScript2.0,开发者可以 将变量约束到特定类型 通过添加类型注释,使 在上可以找到类型不匹配错误 编译时。ActionScript2.0也是如此 引入了基于类的继承 语法,以便开发人员可以创建 类和接口,就像它们 在基于类的语言中,例如 java和C++。这个版本符合 第四部分是ECMAScript 版本规范草案


好吧,不仅仅是时间线中有代码的ActionScript 1。但是一个简单快捷的方法是点击一个框架(空或不空),然后按F9键,检查您正在编码的版本。它会在左手边说它是什么版本(我很确定…)

实际上,你的第二个和第三个代码段在AS1和AS2中都有效。我不相信AS2代码段在AS1中有效,但AS1代码段在AS2中有效。但是,我没有任何方法来实际测试它。onRelease=function()。。。在Flash 6中完全有效,而在Flash 7中引入了AS2;)谢谢你的更正。我使用AS1/2的经验是有限的——在文章中添加了一个小字体。不过“:Void”(数据类型)只是AS2^^