1

ステージの 0 にいくつかの swf ファイルをロードしています。それらは私のサイトのページです。

ページを変更するには、removeChildAt(0) を使用してから、addChildAt("page_title", 0) を使用します。

問題は、removeChild がロードされた最初の swf ファイル (アンロードされる前) から関数を削除しないことです。

どうすればやめられますか?

removeChild には他の方法を使用する必要がありますか?

ありがとう!

4

3 に答える 3

1

あなたが実際にそれらを削除していないように思えます。まず第一に、表示リストから何かを削除することは、視覚的/インタラクティブな変更にすぎません。イベントリスナーまたはw / eである参照を削除するまで実行されます。その後、ガベージコレクションが次のサイクルでそれを取得できるように、nullに設定する必要があります。

Flash Player 10 を使用している場合は、unloadAndStop が問題を解決するために作成したばかりなので、spender は正しいです。

何が起こっているのかを説明する必要があると思いました。なぜなら、人々は修正についてだけでなく、なぜそれが起こるのかを知るべきだからです。

もう 1 つの提案は、これらのムービーをステージにロードせず、コンテナーを作成しSpriteMovieClip保持することです。そうすれば、後で他のものを追加した場合でも、それらは分離され、クリーンで、親を介して簡単にアクセスできます (imageContainer_mcたとえば、 )。

于 2009-09-26T15:54:42.090 に答える
1

Loaderを使用してロードしていると仮定すると、unloadAndStop メソッドを使用できます。

詳細はこちら:

http://www.gskinner.com/blog/archives/2008/07/additional_info.html

于 2009-09-21T02:08:38.370 に答える
0

または、サブムービーを別の ApplicationDomain にロードして、ロードされたコードをメイン アプリから隔離することもできます。flash.system.ApplicationDomainクラスを見てください(これはLoader.load()メソッドのパラメーターです)。

于 2009-09-29T16:26:57.173 に答える