FlexでのModule

例によって、画面数が多かったりするとModuleに分けたりするわけなんですが、

・MainApp
・ModuleA
 →画面A、画面Bを含む

MainAppで、ModuleAをロード、ロードしたModuleAから画面Aを生成。生成した画面をMainAppにAddElememt。
これがしたくて色々やってみたんですが、結果うまくいきませんでした。
なんというか、複雑なコンポーネントを使用するとダメですね。
SDK4.6です。

ModuleA

public class ModuleA extends Module  {
		
		public function MasterModule() {
			super();
		}
		
		public function createViewA():ViewA{
			return new ViewA();
		}
		
		public function createViewB():Class{
			return ViewB;
		}
}

画面のインスタンスを返すパターンと、クラスを返すパターンでやってみました。
Viewが単純な場合(ボタンとかしかない)、とりあえず動きます。
ViewにDataGridを含んでる場合、
mxのDataGridだと、
「#1007: コンストラクター以外にインスタンス化が試行されました」
sparkのDataGridだと、
「スキンが見つかりません」

MainApp側は、sparkのModuleLoaderとmxのModuleManager両方で試しましたが、
結果変わらず。
ちなみにMainApp側で、事前にDataGridを配置しておくと、うまくいきます。mxでもsparkでも。
あと、
画面AをModule化すると、うまくいきます。mxでもsparkでも。
http://livedocs.adobe.com/flex/3_jp/html/help.html?content=modular_3.html
Flex3ですが、Moduleは、フレームワークを含んだ場合、ASダメなんですかね。

SWFLoaderでやってみても結果変わらずでした。

FlexのModuleは、spark,mxの関係から色々難儀する事が多いらしく、
mxだけ使いましょうとかメモリリーク出るとか、あんまりいい話を聞きませんね。
まだ調べが足りないので、とりあえずメモです。もうちょっと調べよう。