2009-11-25 100 views

回答

7

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

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

的ActionScript 3

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

的ActionScript 2

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

的ActionScript 1

on(release){ 
    //do something 
} 

您可能会发现此页面的帮助FUL:添加新的儿童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属性,可以使用parent.childName父访问子即使父类没有一个叫childName属性。对于AS3,只有父类有一个名为childName(适当类型)的属性并且您已经为其分配了子对象的引用(或者您已在动态类MovieClip上创建了该属性)时才有可能。有getChildByName() - 但它会返回给定名称的第一个孩子(并且可能在子列表中有重复的名称)。

+2

实际上你的第二和第三个片段在AS1和AS2都有效。 – Cay 2009-11-25 16:40:02

+1

我不相信AS2片段在AS1中有效,但AS1片段在AS2中有效。但是,我没有任何实际测试的方法。 – 2009-11-25 16:49:28

+1

onRelease = function()...在Flash 6中完全有效,AS2在Flash 7中引入;) – Cay 2009-11-25 16:51:51

2

在AS3和AS1/2之间存在很多差异,在大多数情况下,您会立即看到它(在AS3中查找addChild和addEventListener)。 AS1和AS2之间的区别在哪里不那么明显,但可能是最相关的语言明智的是引入了“类”概念以及用于面向对象开发(类,公共,私人等)的一些语句和关键字。 )。

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

2003-2006:ActionScript 2.0中的语言的下一个 重大修订, ActionScript 2.0中,在 2003年9月推出了具有释放 Flash MX 2004和其对应的 播放器,Flash播放器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

0

那么,它不仅必须是动作脚本1有代码的时间线。但是,查看您编码的版本的简单快捷的方法是点击一帧(空或不是),然后按F9键。它会在左边说它是什么版本(我很确定..):)