再利用されたローダー オブジェクトに swfs をロードする際に問題が発生したので、この件について明確にする必要があります。
3 つの SWF があるとします。
Main.swf
childA.swf
childB.swf
Main.swf には、再利用されるローダー オブジェクト (myloader.load("childA.swf")) があり、childA または childB の swf はユーザーの操作によって読み込まれます。
両方の子 swfs には、config という名前のパッケージ内のクラスを含む com パッケージがあります。
構成ファイルは、同じ名前の両方のクラスの異なるファイルです。
両方の子 swf も、メインがリッスンするイベントをディスパッチします
今私が抱えていた問題は、childAが最初にロードされた場合、childBがロードされた後もchildAとして表示されることでした。基本的に、そのローダーに最初にロードされた方が勝者になります。
何をしてもswfがアンロードされないので、これは私を夢中にさせました。次のコードが見つかるまで。
var appDomain:ApplicationDomain = new ApplicationDomain();
var context:LoaderContext = new LoaderContext(false, appDomain);
_contentPanel.load(new URLRequest(str), context);
swfを本当にアンロードする方法について話しているどこかの投稿で、このコードに出くわしました。どうやら、これはswfを実際にロードする方法にも当てはまります。
ご覧のとおり、新しい appDomain が作成され、ロード時にコンテキストに割り当てられます。
これは夢のように機能し、一日中積み降ろしができるようになりました。
私の混乱は、同じappDomainにないためにメインswfがそれを拾うべきではないと思うときに、子がディスパッチするイベントがまだ機能していることです。
イベントをブロックすべきではないということですか?