mcをすべてのタイマー、イベントで削除します。これを行う簡単な方法はありますか?AS3でムービークリップを完全に削除する方法
答えて
確かに...タイマーとイベントを登録解除し、親から削除して、すべての参照を削除してください。 ;)
つまり、AS3はガベージコレクトされた言語なので、オブジェクト(MCを含む)がで実際にがメモリから削除されたときは制御できません。イベント登録を含むすべての参照を削除すると、GCは不要になったことを検出して自分のためにクリーンアップします。
イベントに登録するときはいつでも、useWeakReference
パラメータをtrue
に設定することができます。それは次のとおりです。
myMC.addEventListener(Event.ENTER_FRAME, onFrame, false, 0, true);
これは、この特定のイベントリスナを基準としてカウントしないことをAS3を告げる - ので、あなたがMCへの他のすべての参照を削除した場合、それはゴミがリスナーの登録を解除しない場合でも収集してしまいます。 (タイマーに関しては、setTimeoutやsetIntervalを使っているのであれば、どちらも参照とはみなされませんが、それについてはわかりません)
MCを傷つけず、Flashにすべてのものを掃除させる方法はありません。これはAS3の仕組みです。参照やイベントの管理は、厳格なコーディングの一部です。あなたのMCにタイマーやイベントがなく、親から削除され、コードのどの部分でも参照されていない場合は、それがなくなります。
Loader.unloadAndStop()http://www.gskinner.com/blog/archives/2008/07/additional_info.htmlから引用
:ここ
がunloadAndStopは、コレクションのためにロードされたSWFを準備しないことのリストです:
- は、すべてのムービークリップ
- 停止を停止しますすべてのサウンド再生/ストリーミング
- すべてのタイマーオブジェクトを停止/削除
- 、frameconstructed、のenterFrame、exitFrameのためにすべてのグローバルリスナーを削除し活性化させる、子によって作成されたすべてのステージリスナーを削除
- を無効にします。
- は、すべてのNetConnection /のNetStream
- Video.attachNetStream /はattachCamera(0)
- Microphone.setLoopback(0)
- グローバルフォントテーブルからAS3フォント
- 停止ソケット、xmlsockets、のFileReferenceダウンロードを削除閉じ他のダウンロードオブジェクト等(孫SWF)、
- 解放等cacheAsBitmapプロパティ/フィルタに関連するビットマップ、
なお、ABの全てoveは再帰的に実行されるため、他のロードされたSWFも含めて、ネストされた子にも適用されます。
私はいくつかのイベント、特にタイマーイベントは、useWeakReference
がtrueに設定されているときに起動に失敗見てきました。したがって、fenomasの提案に注意してください。私は通常、MovieClipにdealloc関数を作成し、addEventListener(Event.REMOVED_FROM_STAGE, dealloc);
MovieClipのremoveChild()
を呼び出すと、dealloc関数が起動します。
特に、私たちが望むよりも頻繁に矛盾が発生する場合は、このことを自分でFlashで処理することをお勧めします。
Jeremy、イベントが解雇されないようにするには、アイテムに参照がどこかにあることを確認してください。
E.G.プリローダへの外部参照、および任意_rootClip.loaderInfo.addEventListener(によってProgressEvent.PROGRESS、FNがないこの時点で
new PreLoader(root);
:私はコマンドでフレーム1にルートタイムラインから呼び出されPreloaderクラスを作っ)は失敗する。 (_rootClipは私のPreLoaderクラスのプロパティで、ルートはパラメータとして渡されます)。
私がしたことは単純です: ローディングバー用のムービークリップを作成し、このムービークリップをルートに追加するので、このムービークリップには参照があります。 私はプレローダーを参照し、自分のイベントが削除されないようにmyMC.preloader = this;
しています。 プリロードを完了すると、ただちに_rootClip.removeChild(myMC);
がすべてを削除します:)
- 1. Flash AS3 - オブジェクトを完全に削除するremoveChild()?
- 2. 子ムービークリップから親ムービークリップを削除する方法3?
- 3. bitbucketで古いコミットを完全に削除する方法
- 4. Androidで初期テーブルを完全に削除する方法
- 5. ムービークリップをマウスで完全に再生
- 6. faviconを完全に削除
- 7. Git:ローカルコミットをgitデータベースから完全に削除する方法
- 8. rootパスワードを完全に削除する方法
- 9. GlusterFSボリュームを完全に削除する方法
- 10. ubuntuからnginxを完全に削除する方法13.04?
- 11. eclipseを完全に削除/アンインストールする方法
- 12. WindowsからAnaconda3を完全に削除する方法は?
- 13. .netから完全にOracle Data Providerを削除する方法
- 14. UbuntuからApacheを完全に削除する方法16.04 LTS
- 15. subversiveプラグインを完全に削除する方法
- 16. ruby apiから「Recurly」アカウントを完全に削除する方法
- 17. JDialogからアイコンを完全に削除する方法は?
- 18. ジェスチャー認識機能を完全に削除する方法
- 19. macからyoutube-dlを完全に削除する方法は?
- 20. AS3ムービークリップ
- 21. Googleドキュメントを完全に削除する
- 22. ソーナープロジェクトを完全に削除する
- 23. パペット - 完全にini_settingを削除する
- 24. removeChildは、Flash Playerのメモリからムービークリップを完全に削除するのに十分ですか?
- 25. ムービークリップを動的に削除
- 26. ムービークリップを使用してMOTION_FINISHの前にAS3トゥイーンを削除します
- 27. ダイナミックテキストボックスの別の行をAS3のムービークリップに変換する方法
- 28. LiferayでEntityを完全に削除する方法(JARファイルのincludeクラス)
- 29. with-initセルからムービークリップを削除する方法
- 30. genymotionエミュレータを完全に削除
これは、読み込まれたSWFファイルであり、MovieClipsでは使用できません。 – Cay