Показать сообщение отдельно
Старый 06.07.2011, 15:03
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 34  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Такой тест не проводил.
А вот если сделать так:
Код AS3:
package {
	import flash.display.Bitmap;
	import flash.display.Sprite;
 
	public class Test extends Sprite {
 
		[Embed(source = "image.png")] private var Img:Class;
		private var _image:Bitmap = new Img as Bitmap;
 
		public function Test() {
			addChild(_image);
		}
		public function clear():void {
			removeChild(_image);
			_image.bitmapData.dispose();
		}
	}
}
То после вызова clear() занимаемое картинкой количество памяти не поменятеся. + она так же будет болтаться в списке live objects
Однако, если сделать так:
Код AS3:
package {
	import flash.display.Bitmap;
	import flash.display.Sprite;
 
	public class Test extends Sprite {
 
		[Embed(source = "image.png")] private var Img:Class;
		private var _image:Bitmap = new Img as Bitmap;
 
		public function Test() {
			addChild(_image);
		}
		public function clear():void {
			removeChild(_image);
			_image.bitmapData.dispose();
                                  _image = null;
		}
	}
}
То все ок. Объект будет уничтожен сборщиком мусора, и память освободится.