我想从Main MovieClip 和其他任何地方完全控制我的游戏。但是我不想通过构造函数传递它的实例,也不想从它的孩子那里引用任何.parent的东西。似乎太变通和不稳定。
示例情况:
public class Main extends MovieClip {
public function Main() {
addChild(new MainMenu());
}
public function startGame():void {
trace("Game started");
}
}
public class MainMenu extends Sprite {
public function MainMenu() {
var option:Option = new Option(); // Some BitmapData library linkage
option.addEventListener(MouseEvent.CLICK, clicked);
addChild(option);
}
public function destroy():void {
// set null/dispose/removeChildren/removeEventListener/etc.
}
private function clicked(evt:MouseEvent):void {
// Should trigger startGame() here (how?) to keep the flow at Main,
destroy(); // since this has nothing to do with it anymore
}
}
我希望有一些类似 Singleton 的解决方案,但 AS3 中没有静态类。从我的研究来看,这似乎是一种不好的做法(或者是吗?)。
好吧,我只想从Main角度用优雅的代码或至少官方实践来做所有事情。我怎样才能做到这一点?(请告诉我这是可能的...... :s)