为什么我不能宣布as3类和&在时间轴上直接打包fla文件

时间:2014-01-11 15:13:14

标签: actionscript-3

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

为什么代码会这样:

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

不能在fla文件中工作,但可以在同一文件夹中的单独.as文件中工作。

1 个答案:

答案 0 :(得分:1)

时间轴和框架是MovieClip类实例的属性,因此在框架中编写代码时,将其添加到主应用程序类中,该应用程序类由Flash IDE自动创建。即您正在使用由编辑器生成的单个类进行操作。

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

请注意,您可以声明函数,并创建其他类的实例,使用frame-scripts中的display-list对象进行操作,这样您的能力就不会受到严格限制。

还有一种方法可以在时间轴上使用Object的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