actionscript 3 init()

min*_*pop 9 flash actionscript-3

我经常在AS3类的构造函数中看到一个init(),有时甚至是构造函数中唯一的代码.如果你可以简单地使用构造函数本身来初始化一个类,为什么这样做会有用呢?

package 
{

    import flash.display.Sprite;

    public class Example extends Sprite
    {

        public function Example()
        {
            init();                 
        }

        public function init ( ):void
        {

         //initialize here

        }

    }

}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ger 16

在ActionScript 3中,始终解释构造函数代码而不是编译代码.我相信将代码移动到init()函数可能允许它被编译和优化.

http://blog.pixelbreaker.com/flash/as30-jit-vs-interpreted/


Myk*_*Myk 6

我这样做的原因是我可以重新初始化一个类而不创建它的新实例.init()方法基本上是一个"重置"按钮,然后,如果你正确编码,允许你将类返回到其初始状态,例如,允许任何已设置的变量保持设置.

当然,这取决于你如何编码.