Actionscript 3 为什么可以';我宣布为3类&;在fla文件中直接在时间轴上打包

Actionscript 3 为什么可以';我宣布为3类&;在fla文件中直接在时间轴上打包,actionscript-3,Actionscript 3,我正在学习动作脚本3。如果我想创建包和类,我必须创建另一个.as扩展文件。我必须将包/类代码放在其中。这很好,但令人恼火,令人沮丧,主要是因为我不明白为什么要这样做 为什么代码会这样: package { public class a{ function a(){ trace('Hey'); } } } 无法在fla文件中工作,但将在同一文件夹中的单独.as文件中工作 时间线和帧是MovieClip类实例的属性,因此在帧中编写代码时,可以将其添加到主应用程序类中,该类由Flash ID

我正在学习动作脚本3。如果我想创建包和类,我必须创建另一个
.as
扩展文件。我必须将包/类代码放在其中。这很好,但令人恼火,令人沮丧,主要是因为我不明白为什么要这样做

为什么代码会这样:

package {
 public class a{
  function a(){ trace('Hey'); }
 }
}

无法在fla文件中工作,但将在同一文件夹中的单独.as文件中工作

时间线和帧是MovieClip类实例的属性,因此在帧中编写代码时,可以将其添加到主应用程序类中,该类由Flash IDE自动创建。也就是说,您使用的是由编辑器生成的单个类

无法在框架脚本中声明包和类。您也不能在一个.as文件中声明多个外部可见的定义(类或函数)。这些是编译器的限制

请注意,您可以声明函数、创建其他类的实例、使用框架脚本中的显示列表对象进行操作,因此您的能力不会受到严重限制

还有一种在时间轴上工作的方法,可以使用对象的prototype属性扩展类行为:

MovieClip.prototype.summ = function ():void {
 trace ('this function extends movieclip class');
}
var instance:MovieClip = new MovieClip();
instance.summ(); // will trace this function extends movieclip class

我正在学习as3…我知道js。这看起来很像js。“不过,flash中原型的用途是什么呢?”穆罕默德,他刚刚告诉过你!不,我的意思是为什么对象中有原型对象。在js中,对象有proto(类似于prototype),如果它是使用函数创建的,那么prototype指的是创建它的函数/类。