2011-12-15 65 views
1

是什么样的flash as3在构造函数之前或之后定义变量?

package { 
    public class Myclass { 
     var txt:TextField = new Textfield(); 

     function Myclass() { 

     } 

    } 

} 

package { 

    public class Myclass { 

     var txt:TextField; 

     function MyClass() { 

      txt = new TextField; 
     } 
    } 
} 

我知道,当你设置创建一个新的对象,类构造函数运行的东西之间的差别,就像这样:

VAR对象:Myclass = new Myclass();

第二种方法是创建新的TextField。

我的困惑在于,第一种方式是何时创建TextField?如果我将类导入到另一个类中,它会为TextField留出内存吗?如果它是一个静态变量呢?

回答

6

内存不会被分配,直到你实例化,所以在这方面它并不重要。

如果使用一个静态变量,该变量将占用内存,因为该变量不绑定到实例化对象,而是像该类中的全局变量。

编辑:从pkyeck如何更好地构建和评论初始化对象大clarifiation: 在构造函数中的AS3代码应该是缓慢的 - 因此,最好创建一个init()方法和在那里做实例,并在构造函数中创建所有的init()。即时编译器(JIT)未对构造函数中的代码进行优化。要使用JIT优化代码,可以从构造函数中调用一个函数。该函数中的代码然后再次被优化。从这里采取:je2050.joa-ebert.com/files/misc/as3opt.pdf - pkyeck

+0

此外,让他们私人或公共(或静态)变量。 – ThomasM 2011-12-15 08:33:47

相关问题