2012-07-03 1 views

Répondre

8

Finalement, BitmapData sera éliminé par la collecte des ordures. L'appel BitmapData.dispose() libère de la mémoire immédiatement, ce qui peut améliorer les performances, en particulier dans l'utilisation intensive de données bitmap dans l'animation basée sur l'image.

Les données bitmap peuvent consommer une quantité importante de mémoire rapidement.

BitmapData, from the ActionScript 3.0 Reference for the Adobe Flash Platform

BitmapData.dispose() libère la mémoire occupée par le bitmap réelle données, immédiatement (un bitmap peut consommer jusqu'à 64 Mo de mémoire). Après en utilisant BitmapData.dispose(), l'objet BitmapData n'est plus utilisable et l'exécution de Flash déclenche une exception si vous appelez des fonctions sur l'objet BitmapData . Toutefois, BitmapData.dispose() ne dépare pas collecter l'objet BitmapData (environ 128 octets); la mémoire occupée par l'objet BitmapData réel est libérée au moment où l'objet BitmapData est collecté par le garbage collector.

+0

Je ne sais pas pourquoi, mais quand j'appelle disposer() comme ceci: 'bitlayer.bitmapData.dispose(); bitlayer.bitmapData = new BitmapData (width, height, true, 0); 'plusieurs fois, la mémoire flash se développe rapidement. Au lieu de cela, si je mets null: 'bitlayer.bitmapData = null; bitlayer.bitmapData = new BitmapData (width, height, true, 0); 'la mémoire flash ne grossit pas du tout. Je pense 'disposer()' avoir un bug. – marbel82