興味深いことに、 unloadAndStop() はあなたの正確な状況を対象としていました。ドキュメントによると...
例: 音楽トラックを含む SWF ファイルがアプリケーションに読み込まれます。
その後、SWF は Loader.unload() を使用してアンロードされます。
SWF は画面から削除されますが、音楽は引き続き聞こえます。
解決
Loader.unloadAndStop は、Action Script 3 の API に新たに追加されたものです。
開発者がロードされたコンテンツを正しく停止してアンロードするのに役立ちます
Loader.load/loadBytes API を使用します。
...Flash Player は再帰的に停止とクリアを試みます。
可能な限りオブジェクト (Sound、NetStreams、EventListeners など)
ロードされた SWF 内。この機能は特に便利です
不明なサードパーティのコンテンツをアンロードするとき。
これはまさにあなたの状況に合っているようです!Loader の実装が正しい場合、これは unloadAndStop() メソッドのバグのように思えます。
別の解決策の 1 つは、各動画に同じローダーを使用するのではなく、ローダーの新しいインスタンスを作成することです。
プライベート var currentMovie:DisplayObject;
プライベート関数 loadSWF(url:String ):void
{
if( currentMovie != null )
{
//現在のムービーで再生中のサウンドを停止します
//その後、表示リストから削除します
removeChild( currentMovie );
currentMovie = null;
}
var loader:Loader = new Loader();
//configureListeners
request.url = URL;
loader.load( リクエスト , コンテキスト );
}
プライベート関数 onLoadComplete(event:Event):void
{
currentMovie = event.target.loader.content;
//等...
}