1

外部 SWF ファイルをロードする単純なエキスパンド広告があります。外部 SWF ファイルには埋め込みビデオが含まれています。

UILoader コンポーネントを使用して SWF をロードし、それをステージに追加すると、ビデオが正常に表示および再生されます。

主な問題は、ビデオをアンロードして停止し、本質的に広告のデフォルト状態に戻る閉じるボタンがあることです。

SWF をアンロードするために、次のことを行っています。

myUILoader.unload();
removeChild(myUILoader);

これを行うと、ビデオと UILoader が画面から消えます。ただし、バックグラウンドでサウンドを聞くことはできます。SWF を再度ロードすると、バックグラウンドで複数のトラックが作成されます。助言がありますか?

4

1 に答える 1

1

これにはいくつかの原因が考えられます。1 つは、UILoader 内のコンテンツがそれ自体の外側にイベント リスナーを追加していることです。これは、それ自体の外側に触れないようにすることで修正できます。独自の ApplicationDomain、SecurityDomain、またはその両方に配置することで、これを行うことができると思います。詳細については、ヘルプを参照してください。

これが不可能な場合は、SoundMixer.stopAll() を試すことができます。これにより、明らかな症状は止まりますが、この状況でおそらく発生するメモリ リークは修正されません。

ロニーがほのめかしたように、別の可能性は、ローダーのコンテンツへの参照がまだどこかにあるということです。それをクリアしないと記憶に残ります。

ただし、これを引き起こす可能性のある別の問題があります。つまり、オーディオが「ストリーム」に設定されたムービークリップを含むフレームをスキップするナビゲーションがムービーにある場合、MC は作成されますが、完全にはインスタンス化されず、それを制御したり解放したりする方法がなく、メモリにとどまります。これはあなたの説明から起こっていることではないと思います。そうである場合、解決策は、他のフレームに向かう途中で、サウンドを含むフレームにアクセスすることを確認することです。これは、ネストされた MovieClip でフレームをスキップするたびに発生し (swf をプロファイリングしない限り証拠がありません)、時間の経過とともにメモリ リークが発生するため、サウンドがなくても考慮する必要があります。

于 2012-08-07T00:02:52.333 に答える