![]() |
for не выполняет всех интераций!!! О_О
Имеется следующий кусок кода:
Код AS3:
Код AS3:
Добавлено через 10 минут Сделал вот так заработало, кто бы мог подумать, индексы в массиве детей изменяются динамически... хмм.. Код AS3:
|
Ну так ты с помощью removeChildAt(i), уменьшаешь количество детей, поэтому все выполняется как положено.
Запиши в переменную количество детей, а потом используй его в цикле. Добавлено через 14 минут Цитата:
|
Код AS3:
|
Если те всех нужно прибить я делаю
Код AS3:
|
вот еще вариант
Код AS3:
|
Цитата:
|
Цитата:
Добавлено через 2 минуты Можно еще так: Код AS3:
|
Самый быстрый, как ни странно, while (map_layer.numChildren) map_layer.removeChildAt(0);.
|
Цитата:
|
Цитата:
|
Цитата:
Код AS3:
|
Цитата:
В то-же время приведённый вами while (map_layer.numChildren) map_layer.removeChildAt(0); работает абсолютно корректно, и является более правильным способом удалить всех чайлдов. Т.к. событие removed может обрабатываться и каждый раз, когда вы пишете map_layer.removeChildAt(0) может выполняться сторонний код, который может изменять число чайлдов. Между условиями "Удалим столько детей сколько их было в начале операции" и "Удаляем пока их совсем не останется" есть большая разница. |
Цитата:
Компонент - контейнер (наследник от DisplayObjectContainer), содержащий фон и обычный текстфилд. |
Правда если кто-то особо злой на ремуве будет добавлять себя на место, можно и зависнуть. В моём случае на ремуве ещё один ремув, я думаю что это корректно, хотя и не красиво.
Добавлено через 37 секунд Цитата:
|
Ничего не мешает сделать текстфилд торчащим наружу ссылкой :)
|
Цитата:
Ваш расширенный TextField прикладывает руки к своему родителю и ковыряется в его детях. При этом вам еще необходимо подписываться/отписываться от событий ADDED/REMOVED. Не самый лучший вариант на мой взгляд. |
Можно сделать полем вашего текстфилда спрайт. В который добавлять сам этот текстфилд и фон. Всё это делать и вообще создавать спрайт можно только если нужен навороченный фон. Ну там ещё перегрузить addChild/removeChild. Будут иногда некоторые проблемы, если этот текстфилд достается при помощи getChildByName/getChildAt, ну так не юзать их лишний раз, они вот точно зло =)
|
Решение -De- интересно, но всё равно не позволяет просто заменить new TextField() на фабрику и забыть. Моё позволяет. Мне оно самому не нравится тем, что лазит в парента, и я с радостью его переделаю на более адекватное, но пока таковых не нашёл.
|
| Часовой пояс GMT +4, время: 00:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.