![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2009
Сообщений: 48
|
Тогда еще один вопросик.
Вот код: //Удаляем уровень игры (в который напихали всякой фигни) из списка отображения removeChild(level); //Приравниваем переменную к null level = null; //Создаем новый уровень level = new CLevel(++n); //Добавляем в список отображения addChildAt(level, 0); Флешка изначально отжирает 17мегов памяти Так вот, если сделать это (пересоздать уровень) несколько раз, то флешка отжирает до 100мегов, затем потребление памяти падает. Причем каждый раз падает по разному, но еще ни разу не упало обратно до 17 мегов. Это нормально? (Тестирую в Stand-alone debug плеере). |
|
|||||
|
Смотреть нужно в профайлере, а не через диспетчер задач или всякие там Sysem.totalMemory.
Если не знаете что такое профайлер - ищите в гугле. Заодно поищите про Garbage Collector.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Таймера будут выполнятся, ну и что с ними? =)
Например в примере у silin`а при запуске GC (наверняка все видели) работала подпика на ENTER_FRAME. И ведь убивалась =) С таймерами наверняка та же фигня. Тут речь уже скорее об эмуляции что всё отошло в мир иной, а вопрос был о достаточности отхода.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
таймер продолжает действовать даже в удалённом объекте http://www.bit-101.com/blog/?p=1169
зачем тратить ресурсы на вычисления внутри объекта который должен быть удалён?
__________________
Хороший отдых - половина работы. Последний раз редактировалось artcraft; 01.09.2010 в 19:17. |
|
|||||
|
Цитата:
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jul 2004
Сообщений: 52
|
А как удалить объект, если на него имеется только ссылка?
curObject = null; разве сработает? |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jul 2004
Сообщений: 52
|
Цитата:
А вот по удалению самого объекта... Уточню. Есть мувиклип А. В нем Б. А уже в нём 20 мувиклипов. В мувиклипе А: private var curObject:Object; // цикл, в котором переменной curObject присваивается ссылка на очередной клип. for (var i:int = 1; i < 20; i++) { curObject = мувикБ.getChildAt(i); trace(curObject.x); // набор действий над клипом curObject = null; // удаление, которое не работает, //так как скорее всего null присваивается переменной curObject, //а не объекту, на который ссылка } |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
Если требуется удалить очень сложный объект, в котором много чего напихано, лучше отдельно прописать метод 'destroy' или что то в этом духе, куда вам придется вручную прописать удаление всех листенеров, таймеров, интервалов, ссылок и пр. все, из-за чего мусорщик может считать объект активным. Достаточно хлопотно, но еще лучше строить объект level таким образом, чтобы не приходилось его удалять, а можно было бы модифицировать при изменившихся обстоятельствах, а удалять в нем простые объекты, если нужно.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|