之类的区别是什么?
package {
public class Myclass {
var txt:TextField = new Textfield();
function Myclass() {
}
}
}
和
package {
public class Myclass {
var txt:TextField;
function MyClass() {
txt = new TextField;
}
}
}
我知道当你设置创建一个新对象时,会运行类构造函数,如下所示:
var object:Myclass = new Myclass();
在第二种方式中,这将创建新的TextField。
我的困惑是,在第一种方式中,TextField何时被创建?如果我将类导入另一个类,它会为TextField留出内存吗?如果它是一个静态变量呢?
答案 0 :(得分:6)
在实例化之前不会分配内存,因此在这方面并不重要。
如果你使用一个静态变量,那个变量将占用内存,因为它没有绑定到实例化的对象,而是像该类中的全局变量一样。
编辑:关于如何在评论中最好地构建和初始化对象,从 pkyeck 获得了很好的澄清: 构造函数中的AS3代码中的应该很慢 - 所以最好创建一个init()方法并在那里进行instanciation,并在构造函数中进行所有init()。实时编译器(JIT)未优化构造函数内的代码。要使用JIT优化代码,可以从构造函数中调用函数。然后再次优化该函数内的代码。取自这里:je2050.joa-ebert.com/files/misc/as3opt.pdf - pkyeck