Actionscript 3 AS3类可以创建自身的实例吗

Actionscript 3 AS3类可以创建自身的实例吗,actionscript-3,Actionscript 3,这样行吗 从游戏开始,它会创建一个方块精灵,并触发一个自定义事件 如果我使用公共静态函数和一些事件侦听器,如以下准代码: public static function tile() { if this hears statusbox.statuschanged and this triggers a static private function } static private function create instances of tile with public

这样行吗

从游戏开始,它会创建一个方块精灵,并触发一个自定义事件

如果我使用公共静态函数和一些事件侦听器,如以下准代码:

 public static function tile()
 {
 if this hears statusbox.statuschanged 

and this triggers a static private function 
 } 

static private function 
create instances of tile 
with 
public function tile(id:uint,... ) 

给定的类没有理由不能创建自身的实例。您只需确保它在从自己的构造函数调用的任何方法中,或者在任何自动实例化的类变量中都没有这样做。否则您将创建一个非终止循环!阅读准代码相当困难,但听起来您在实例化时不会创建任何内部引用,因此您可能会明白。举几个例子:

将工作:

package {

    public class Tile {

        private var _innerTile:Tile;

        public function Tile() {

        }

        public function innerTile_create():Tile {
            _innerTile = new Tile();
            return _innerTile;
        }

    }

}
不起作用:

package {

    public class Tile {

        public function Tile() {
            var innerTile:Tile = new Tile();
        }

    }

}
也不行

package {

    public class Tile {

        private var _innerTile:Tile = new Tile();

        public function Tile() {

        }

    }

}

你应该试试看,然后你会发现它是否有效正常情况下,它应该工作!如何调用tile.as中的公共函数start(),该函数启动游戏的主要部分,尽管我认为我可以执行{if(stage)init();else addEventListener(Event.ADDED_TO_stage,init);}private function init():void{removeEventListener(Event.ADDED_TO_stage,init)在初始化过程中我不想启动它的是什么?对start()的简单调用会给出一个错误。