![]() |
Вопрос: удаление всех Child из родительского мувика.
Перевожу прогу AS2->AS3.
Проблема: Есть top:MovieClip - родительский. В нем создаю через new MovieClip и addChild еще мувики (программно создаю). Есть кнопка очистки родительского мувика. Алгоритм чистки следующий: function clearTop(){ for(var i:Number = 1; i<=top.numChildren; i++){ if(top.getChildAt(i)){ top.removeChildAt(i); } } } Алгоритм работает один раз - чистит содержимое top, а на второй раз - ругается что нет нифига - ругается 2006 ошибкой, типа нет мувика с таким индексом. Хотя проверку я поставил. Как сделать корректную проверку на существование Child? Замена top.getChildAt(i) на Boolean(top.getChildAt(i)) - ничего не дала |
Ошибки:
1. индексы детей начинаются с 0. 2. Код:
if(top.getChildAt(i)){3. Код:
for(var i:Number = 1; i<=top.numChildren; i++){...вот ваш алгаритм: Код:
start. 1. 2. 3. |
Обалдеть! А как тогда правильно удалить всех детей родительского мува?
|
или так:
Код:
while(this.numChildern > 0) this.removeChildAt(0);Код:
for(var i : int = 0; i < this.numChildern; i++) this.removeChildAt(0);Код:
for(var i : int = this.numChildern-1; i >= 0 ; i--) this.removeChildAt(this.numChildern-1); |
или так:
Код:
var num:int = super.numChildren; |
Парни! Идеально! Спасибо!!
Недопетривал стековость контейнера. Теперь вообще многое прояснилось))) |
Маленькая лепта от меня:
Код:
while (container.numChildren) |
ну если на то пошло то numChildren тоже жрёт ресурсы.
|
Ну я не спорю, только почему-то мне кажется, что numChildren кэшируется при изменении количества детей и возвращается по требованию, а не пересчитывается каждый раз при обращении к нему. ;-)
|
Узнайте кол-во детей один раз...и удаляйте относительно него + лучше удалать, начиная с верхних, чтоб не менять индексы слоев при удалении.
|
| Часовой пояс GMT +4, время: 21:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.