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