プロジェクト全体でのグローバルな検索と置換以外に、パッケージ構造を変更するための他の優れた方法を知りません。私もこれを行うのに問題はありませんでした。
メディエーターの場合、コンストラクターで単純な変数(ints、Booleans、Arraysなど)を初期化することに問題はありませんでしたが、それ以外のもの(特にステージに関係するもの)はonRegisterに延期され、次のようになります。
public class MyMediator extends Mediator implements IMediator {
public static const NAME : String = "MyMediator";
// internal states
private var foo : int;
public function MyMediator (viewComponent : Object) {
super(NAME, viewComponent);
foo = 0;
trace("MyMediator()", main_mc);
}
override public function onRegister () : void {
main_mc.addEventListener(...);
}
protected function get main_mc () : Main {
return viewComponent as Main;
}
}
AS3にスパースコンストラクターを含めることは、とにかく良い考えです。コンストラクターコードは常に解釈され、コンパイルされないためです。
今の習慣から、私は単一のコアを持っている場合でも、すべてのプロジェクトにマルチコアを使用しています。これにより、新しいプロジェクトでのメディエーターとプロキシの再利用がはるかに簡単になります。