我正在学习actionscript 3.如果我想创建包和类,我必须创建另一个.as
扩展文件。其中我必须把包/类代码。这很好但令人讨厌,令人沮丧,主要是因为我不明白为什么必须这样做。
为什么代码会这样:
package {
public class a{
function a(){ trace('Hey'); }
}
}
不能在fla文件中工作,但可以在同一文件夹中的单独.as文件中工作。
答案 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