ステージから削除するには:
stage.removeChildren();
ステージからクリップを削除するだけでは、必ずしもメモリからクリップを削除することと同じではありません。
removeChildren
、removeChild
またはremoveChildAt
実際にスプライトやその他のDisplayObjectをメモリから削除するのではなく、。から削除するだけdisplaylist
です。つまり、1000個のスプライトを作成し、それらをステージ(displaylist)に追加してから使用すると、removeChildren
それらはメモリ内に(永久に)存在する可能性があります。次に、メモリリークが発生します。
メモリから削除するには、に関係のあるすべてのオブジェクトdisplayObject
をnullに設定する必要があります。これには、イベントリスナーとnon-displaylist
関連オブジェクトから/への関係が含まれます。
関連するものがすべてなくなっていることを確認したい場合は、nullにして、次のことを確認してください。
displaylist
usingremoveChild
またはremoveChildAt
removeChildrenから削除します。(これはステージから実行できることに注意してください)
eventListeners
クリップに接続されているものをすべて削除するか、弱いイベントリスナーを使用します。
- 配列、ベクトル、ディクショナリ、またはその他のオブジェクトで参照を使用した場合は、オブジェクトから参照を削除するか、nullに設定するか、Array.splice()を使用してスプライスします。
setTimeout/setInterval
クリアする必要があります
- をセットする
object = null
テンプルライブラリのMrDoob統計またはパフォーマンス統計を使用してメモリのプロファイルを作成できます。すべてのクリップを削除すると、しばらくするとドロップ(ガベージコレクション)が表示されます。複数回取り外した後は、メモリインジケータが高くならないようにする必要があります。