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()的简单调用会给出一个错误。