![]() |
Удаление объектов из иерархии отображения
Представим себе такую последовательность действий:
1. Создаем объект (сохранив на него ссылку) 2. Отслеживаем наступления некоторого события (не связанного с помещением или удалением объекта в/из иерархии отображения) 3. Добавляем объект в иерархию отображения 4. Удаляем объект из иерархии отображения 5. Удаляем ссылку на объект, созданную на первом шаге По сути flash удалит объект, когда ему это понадобится, если ссылок на объект не осталось. Вопрос такой: понятно, что события, обозначенные в шаге 2 не наступят. Но удалится ли объект? Т.е. будет ли считаться, что мы стерли ВСЕ ссылки на объект? И еще момент: представим, что в наш объект были размещены другие объекты (ссылки на которые не сохранились), за которыми так же следили (addEventListener). После проделанных шагов 4 и 5, будут ли под-объекты считаться пригодными для выбрасывания? Надеюсь, достаточно четко объяснил суть вопроса. Заранее спасибо! |
Мне не совсем понятно, почему события в шаге 2 не наступят, но Вам виднее. Объект не удалится, потому что был шаг 1.
По моменту. addChild оставляет ссылку на ребенка у родителя в списке детей. Т. o. объекты не будут считаться пригодными для выбрасывания до тех пор, пока не произойдет removeChild. |
Цитата:
Цитата:
|
флеш не настолько умный. Все ссылки лучше занулять(включая удаляемых детей). И обязательно удалять всех слушателей.
|
Цитата:
как обойти всех детей - я знаю. тогда вопрос: как зная объект, найти всех назначенных слушателей (т.е. пару тип и значение слушателя)? |
Цитата:
|
Цитата:
т.е. необходимо следить за каждым подписанием и сохранять его - тоже выход, конечно. просто не универсальный. спасибо. и можно на "ты". |
Цитата:
|
Цитата:
ведь так можно рассматривать объект, чтобы удалить всех его детей, добавленных методом addChild() не отслеживая этого. |
В правильно начатом проекте проблемы отписывания от событий в принципе не возникнет.
|
| Часовой пояс GMT +4, время: 08:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.