Вход

Просмотр полной версии : Не удаляются из спрайта childrens


Vansimar
30.11.2013, 16:39
пишу так
for (var j:int=0;j<achievFront.numChildren;j++){

achievFront.removeChildAt(j);

}
trace(achievFront.numChildren);


трейс вдает 3, как так????

RandomUser
30.11.2013, 16:47
achievFront.removeChildren(); // для 11-го плеера и выше
while (achievFront.numChildren > 0) achievFront.removeChildAt(0); //для всех остальных

Vansimar
30.11.2013, 16:48
ну у меня 11 плеер и выше

RandomUser
30.11.2013, 16:50
Т.е. вопрос был почему так, а не как удалить всех детей?

Isfet
30.11.2013, 17:10
при удалении объекта numChildren уменьшается на 1, а переменная в цикле - нет

Zebestov
30.11.2013, 18:22
Нет слова childrens. Children — это уже множественное число от child.

caseyryan
30.11.2013, 19:52
У тебя не правильный цикл используется. В нем происходит инкремент, а в контейнере декремент.
Короче говоря вот так можно сделать:

while (achievFront.numChildren) achievFront.removeChildAt(0);


Нет слова childrens. Children — это уже множественное число от child.
Тоже хотел это сказать))

Wolsh
30.11.2013, 19:59
Проще говоря, когда ты с нулевого уровня удаляешь, на него перемещается с первого, а на первый — со второго. Ты удаляешь с первого, на него перемещается тот, который изначально был на третьем, и т.д. То есть в реальности ты удаляешь элементы "через один".