Показать сообщение отдельно
Старый 06.07.2011, 13:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 33  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от goodguy Посмотреть сообщение
Да это понятно, но тем не менее, по пока на изображение есть хоть одна ссылка, оно так и будет занимать то количество памяти, которое и занимало до вызова dispose(). О чем, собственно, говорит отладчик во флешдевелоп.
Ничего подобного.
Простой тест.
Код AS3:
package {
	/*    IMPORT             *///{ /
	import flash.display.*;
	import flash.events.*;
	//}
	public class TestDispose extends Sprite {
		/*  - VAR PRIVATE        *///{ /
		private var _bitmap:Bitmap = null;
		//}
		/*  * CONSTRUCTOR *      *///{ /
		public function TestDispose () {
			_bitmap = new Bitmap ()
			addChild (_bitmap)
			stage.addEventListener (MouseEvent.CLICK, onClick)
		}
		//}
		/*    EVENT              *///{ /
		private function onClick (event:MouseEvent):void {
			if (_bitmap.bitmapData == null) {
				_bitmap.bitmapData = new BitmapData (3000, 3000);
				trace ('new');
			} else {
				_bitmap.bitmapData.dispose ();
				trace ('dispose');
			}
		}
		//}
	}
}
При запуске отладчик показывает 5 кб
При new 40,8 кб
При dispose 5,6 кб

Можно воспользоваться System.totalMemory вместо профайлера, результат будет тот же.
__________________
(и)Нильс.ru | Плагины для FlashDevelop