Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   fl.transitions.TweenEvent.MOTION_FINISH по совершению, нужно удалять listener? (http://www.flasher.ru/forum/showthread.php?t=140915)

джонатан 10.06.2010 19:23

fl.transitions.TweenEvent.MOTION_FINISH по совершению, нужно удалять listener?
 
Здрасьте, простите если вопрос глупый, только второй день тыркаюсь в АС3, пока не все понятно, не могу понять, нужно ли удалять слушатель, или он сам удаляется?

Спасибо за внимание.

AlexDesinger 10.06.2010 19:31

я удаляю.

КорДум 10.06.2010 20:06

С чего вы взяли, что слушатель сам удаляется?

джонатан 10.06.2010 20:08

по логике вещей, почему бы не удалиться самому той вещи которая уже выполнена. :) Да и в примерах в хелпе я как-то не увидел ничего такого.

КорДум 10.06.2010 20:11

После уничтожения объекта (не важно какого) все слушатели, таймеры, присоединенные к нему, остаются и работают. Так что только чистить самому.

джонатан 10.06.2010 21:16

Понял, спасибо.

nachalnik 25.06.2010 11:59

Цитата:

Сообщение от КорДум (Сообщение 914565)
После уничтожения объекта (не важно какого) все слушатели, таймеры, присоединенные к нему, остаются и работают. Так что только чистить самому.

То есть , раз слушатель объекта не уничтожается, то остается и ссылка на объект в самом слушателе (e.target.obj). Раз ссылка остается, то и объект остается не выгруженным из памяти. А уничтожая объект с помощью removeChild и присвоением переменной имеющей ссылку на этот объект значения null, но не удаляя слушатели объекта мы по сути не удаляем объект полностью , и он будет тихо и незаметно жить и жрать ресурсы.
Я ВЕРНО МЫСЛЮ ИЛИ ОШИБАЮСЬ? может есть ссылочка почитать об этом подробно?
(вот тут читал и здесь . Но насчет слушателей здесь ничего вроде нет

-De- 25.06.2010 12:37

Мыслите верно. Надо ещё прочитать про weak references (слабые ссылки), что-то не нашел по ссылкам про них.
Ещё конкретней - параметры конструктора Dictionary и то, что имеет непосредственное отношение к теме - параметры addEventListener.
Так вот - врачи рекомендуют (если вы не извращенец и не используете анонимные функции и даже в этом случае можно исхитриться) 5-й параметр всегда ставить в true.
Тогда когда удалится ссылка на обьект, то лангольеры сожрут и его и его слушатели.

AlexDesinger 25.06.2010 12:44

мне нравиться такой подход -
удалять листенер как только программа перестает в нем нуждаться, если это происходит одновременно с удалением объекта, то одновременно сносить листенеры и сам объект.
Но еще более прикольно выстроить таким образом проект чтобы сам объект не удалять никогда, а лишь дективировать его и если нужно модифицировать и запускать снова.

nachalnik 25.06.2010 12:47

спасибо за указание пути. погружаюсь в поиски инфы


Часовой пояс GMT +4, время: 05:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.