Цитата:
|
В любом случае добавлять/отцеплять display object'ы от дисплей-листа должен родительский для этих объектов контейнер.
|
Это ошибочное суждение. Не знаю почему многим так вбилось это в голову. Объекты могут и сами себя удалять из дисплей листа. Ничего плохого в этом нет, если на них нет каких-то дополнительных внешних ссылок. Часто вот такие "правильные" подходы приводят к дико нечитаемому и трудноподдерживаемому коду.
Взять какого-нибудь персонажа в игре. Врага. Игрок убивает этого врага, и вот тут возникает вопрос, а как его удалить? Если пользоваться подходом, что только родитель должен удалять дочерние объекты, то этот враг должен (согласно парадигме флеша) послать событие о том, что он дожен удалиться. Это событие должен слушать родитель. По событию родитель находит целевой объект, отписывается от его событий и удаляет объект.
Хотя все можно было сделать гораздо проще. Не оставлять никаких внешних ссылок на врага, а просто создать в нем метод destroy / dispose, в котором он может сам удалиться из дисплей листа. Никаких ненужных событий и лишних зависимостей.