Показать сообщение отдельно
Старый 08.04.2011, 16:00
Monade 2 вне форума Посмотреть профиль Отправить личное сообщение для Monade 2 Найти все сообщения от Monade 2
  № 1  
Ответить с цитированием
Monade 2
 
Аватар для Monade 2

Регистрация: Apr 2011
Сообщений: 38
По умолчанию удаление объекта из памяти

здравствуйте! есть такая проблема, при создании большого кол-ва объектов (bitmapData к примеру), сильно приложение начинает тормозить (делаем игру). перелопатил много материала на иностранных форумах, где было сказано, что чтобы удалить из памяти какой-либо объект, нужно убрать все references на него (ссылки, наверное), то есть листенеры, и т.д. однако даже такой пример не работает как надо:

Код AS3:
import flash.display.Bitmap;
import flash.display.BitmapData;
 
var myShapeB:BitmapData;
b.addEventListener(MouseEvent.CLICK, fn_add);
c.addEventListener(MouseEvent.CLICK, fn_remove);
 
function fn_add(e:Event)
{
	myShapeB = new BitmapData(2000,2000,true,0xFFDD0000);
 
	b.removeEventListener(MouseEvent.CLICK, fn);
 
}
 
function fn_remove(e:Event)
{
	myShapeB = null;
 
	c.removeEventListener(MouseEvent.CLICK, fn2);
 
}
при множественном нажатии кнопок (сначала fn_add, потом fn_remove) выделяемая память растет ну совсем уж неприлично. большой размер 2000 на 2000 сделан специально для отслеживания памяти. или я просто не туда смотрю и не то делаю?

заранее спасибо!