![]() |
Цитата:
я просто хотел понять, есть ли необходимость удалять всех детей и слушателей, если я хочу удалить родителя. |
Удаление детей должен произвести сам удаляемый объект.
|
Цитата:
|
в общем случае, я делаю метод destroy, который запускает destroy у всех детей, а потом зануляет свои ссылки и убивает слушателей. Уж свои-то листенеры объект должен знать.
|
Цитата:
|
зануляет ссылки внутри себя. Убить ссылку на него - задача уже его родителя.
Непонимаю в чем проблемы, любой программист, который учился программированию на cpp или даже pascal имеет понимание о том, как освободить память. |
Цитата:
|
Цитата:
меня просто удивила формулировка вашего ответа - потому и уточнил. Цитата:
|
Присоединяюсь к __etc.
Но сделаю замечание: занулять все ссылки, удалять всех детей и делать кучу других лишних действий (в общем случае) - это гемор чистой воды. Нужно занулять (и снимать слушатели) только то, что действительно необходимо ;) Деструкторы в классах тогда будут занимать больше чем сами классы )) Зануления и удаления могут немного ускорить процесс "mark" у GC (garbage collector), не более. Важно четко и правильно понимать как флэш работает с памятью. Тогда проблем с "нужно/не нужно" не будет. P.S. Какие бы профи не были в команде разрабов, без Flex Profiler порой не обойтись ;) P.P.P.P.P.S. ну и те кто пишут свои проги в Flash IDE, не прогеры... )))) гы |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
В общем-то проверьте профайлером: Код AS3:
Код AS3:
Насчет удаления слушателей надо понимать лишь, что такое слушатель, и как оно работает. А работает оно как-то так: http://www.javaworld.com/javaworld/j...04-events.html child.addEventListener(event, parentFunc) в массив _listeners ребенка кладет ссылку на parentFunc. А т. к. это дело изолировано в ребенке, то ничего казалось бы не помешает флэшу удалить спокойно child из памяти, если на него не осталось ссылок. Но из-за особенности флэшовских событий (bubbling) в родителе тоже возможно сохраняются ссылки на ребенка - мое предположение. Поэтому: Цитата:
Кстати, может кто знает, нет ли где-нибудь статьи, в которой описана модель событий флэша на очень детальном уровне? Т. е. фактически как написать класс EventDispatcher идентичный флэшовому. |
| Часовой пояс GMT +4, время: 03:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.