1

1 つのメイン SWF から複数の SWF をロード/アンロードしています。新しい swf をロードするときは、次のようにします。

contentContainer.addChild(the new swf); //add the new swf
contentContainer.swapChildrenAt(0,1);
contentContainer.removeChildAt(1); //remove the previous swf

私の質問は、私が removeChildAt() を実行すると、古い swf は「再生」し続け、CPU リソースを占有し続けるのでしょうか? どうすれば完全に殺すことができますか?古いswfにオーディオやビデオがあれば、削除しても再生し続けているようです。

4

2 に答える 2

1

Loader.unloadAndStop()で試してください

于 2009-09-07T08:25:30.293 に答える
0

次のようなことを試してみてください。

var mc:MovieClip = contentContainer.removeChildAt(1) as MovieClip;
mc.stop();

または、アンロードされた swf に埋め込まれたムービーに対していくつかの public stop() メソッドを作成します。(参照)

おそらく、これにはいくつかのバリエーションが必要になるでしょう。

Event.ADDED_TO_STAGEまた、可能であれば、子 swfs に,イベントをリッスンさせることもできEvent.REMOVED_FROM_STAGEます。親コンテナーに依存して停止するよりも、この意味で自分自身を制御する方が理にかなっています。

于 2009-09-07T07:34:32.817 に答える