メインムービークリップだけでゲームを完全に制御したいと考えています。しかし、コンストラクターを介してそのインスタンスを渡したくないし、.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
}
}
シングルトンのようなソリューションが欲しかったのですが、AS3 には静的クラスがありません。そして、私が調査したことから、それは悪い習慣のようです(またはそうですか?)。
まあ、エレガントなコードまたは少なくとも公式のプラクティスを使用して、メインの観点からすべてを実行したいだけです。これどうやってするの?(これが可能であると教えてください... :s)