ステージの 0 にいくつかの swf ファイルをロードしています。それらは私のサイトのページです。
ページを変更するには、removeChildAt(0) を使用してから、addChildAt("page_title", 0) を使用します。
問題は、removeChild がロードされた最初の swf ファイル (アンロードされる前) から関数を削除しないことです。
どうすればやめられますか?
removeChild には他の方法を使用する必要がありますか?
ありがとう!
ステージの 0 にいくつかの swf ファイルをロードしています。それらは私のサイトのページです。
ページを変更するには、removeChildAt(0) を使用してから、addChildAt("page_title", 0) を使用します。
問題は、removeChild がロードされた最初の swf ファイル (アンロードされる前) から関数を削除しないことです。
どうすればやめられますか?
removeChild には他の方法を使用する必要がありますか?
ありがとう!
あなたが実際にそれらを削除していないように思えます。まず第一に、表示リストから何かを削除することは、視覚的/インタラクティブな変更にすぎません。イベントリスナーまたはw / eである参照を削除するまで実行されます。その後、ガベージコレクションが次のサイクルでそれを取得できるように、nullに設定する必要があります。
Flash Player 10 を使用している場合は、unloadAndStop が問題を解決するために作成したばかりなので、spender は正しいです。
何が起こっているのかを説明する必要があると思いました。なぜなら、人々は修正についてだけでなく、なぜそれが起こるのかを知るべきだからです。
もう 1 つの提案は、これらのムービーをステージにロードせず、コンテナーを作成しSprite
てMovieClip
保持することです。そうすれば、後で他のものを追加した場合でも、それらは分離され、クリーンで、親を介して簡単にアクセスできます (imageContainer_mc
たとえば、 )。
Loaderを使用してロードしていると仮定すると、unloadAndStop メソッドを使用できます。
詳細はこちら:
http://www.gskinner.com/blog/archives/2008/07/additional_info.html
または、サブムービーを別の ApplicationDomain にロードして、ロードされたコードをメイン アプリから隔離することもできます。flash.system.ApplicationDomain
クラスを見てください(これはLoader.load()
メソッドのパラメーターです)。