メモリについて、検証が完了したのでご報告します。
以下のコードを実行して、メモリの使用状況をモニタしましたが、問題なく GC が実行されて読み込んだコンテンツが破棄されているようです。
protected override function _onLoad():void {
var require:URLRequest = new URLRequest( "external.swf" );
var com1:LoadChild = new LoadChild( progression.container, require );
var com2:LoadChild = new LoadChild( progression.container, require );
var com3:LoadChild = new LoadChild( progression.container, require );
// 実行したいコマンドを登録します。
addCommand(
com1,
new Wait( 1000 ),
com2,
new Wait( 1000 ),
com3,
new Wait( 1000 ),
new UnloadChild( progression.container, com1.loader ),
new Wait( 1000 ),
new UnloadChild( progression.container, com2.loader ),
new Wait( 1000 ),
new UnloadChild( progression.container, com3.loader ),
new Wait( 1000 ),
// 強制 GC を実行する
function():void {
try {
new LocalConnection().connect( "foo" );
new LocalConnection().connect( "foo" );
} catch ( e:Error ) {}
},
new Wait( 1000 )
);
}
ですので、今回の件は LoadChild / UnloadChild の問題ではなく、外部 SWF ファイル内での破棄処理がうまく動作していないのではないかと思いますので、ぜひそちらを確認してみてください。