|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2011
Сообщений: 169
|
Проблема с созданием и удалением обьектов
Я поставил FlashPreloadProfiler и из интереса решил поглядеть,что там у меня с быстродействием?
И заметил,что во вкладке MemoryProfiler,скапливаются экземпляры разнообразных классов,которые я вроде-бы обнуляю,и вот возник вопрос - как правильно обнулить экземпляры класса,чтобы они удалялись окончательно? Просто у меня в этой же игре возникают тормоза и я думаю,что это,возможно из-за этого. К примеру вот эта функция: public class TimedAnimation { private var mv:MovieClip; private var t:Timer; private var tf:int; // totalFrames private var f:Function; public function TimedAnimation(mv:MovieClip,f:Function,sf:int = 1, ef:int = 0 ) { if (ef == 0) { ef = mv.totalFrames; } this.tf = ef; this.mv = mv; this.f = f; t = new Timer(25) t.addEventListener(TimerEvent.TIMER, onTimerTick); t.start(); } private function onTimerTick(e:TimerEvent):void { mv.nextFrame(); if (mv.currentFrame == tf) { t.stop(); t.removeEventListener(TimerEvent.TIMER, onTimerTick); f(mv); t = null; mv = null; f = null; } } } Создает утечку одного таймера и двух функций,хотя я,вроде бы,все обнуляю и,по возможности,удаляю. Последний раз редактировалось windrunner31; 27.10.2011 в 23:00. |
|
|||||
[+4 06.05.14]
|
в аниматоре сделать destroy() { снятие слушателя с таймера, остановка таймера, удалить ссылку на мувик, удалить ссылку на функцию }
вызвать Animator.destroy(); Animator = null;
__________________
Марк Tween |
|
|||||
Регистрация: Jul 2011
Сообщений: 169
|
В коде я также делаю,только без отдельного метода
|
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Все правильно. Просто это не удаляет экземпляры сразу. Их удалит сборщик мусора, когда посчитает это нужным. Так что ничего удивительного, все работает как и должно
|
|
|||||
Регистрация: Jul 2011
Сообщений: 169
|
Ага,спасибо.
|
|
|||||
Регистрация: Jun 2009
Адрес: Нерезиновая
Сообщений: 23
|
В дебажверсии можно руками вызвать сборщик и глянуть, что после этого останется.
|
Часовой пояс GMT +4, время: 22:16. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|