удаление нескольких видеоклипов - PullRequest
0 голосов
/ 12 февраля 2012

Я разрабатываю игру. Я прикрепил случайные мувиклипы из библиотеки. У меня есть мувиклипы с именами picLeft1, picLeft2, picLeft3 и так далее в библиотеке. Он работает нормально, но у меня проблемы с его удалением. код ниже для вложения мувиклипа. Здесь ranque - это массив, в котором хранятся случайно сгенерированные числа до 5, а HolderL - это мувиклип, в который я хочу прикрепить мувиклип. И q это спрайт.

for (var i:int = 0; int<3; i++) {    
    que_mc.push("picLeft"+ranque[i]);    
    var que_mc_class:Class = getDefinitionByName(que_mc[i]) as Class;   
    q = new que_mc_class();  
    this["HolderL"+(i+1)].addChild(q);  
}

мой код для удаления мувиклипа приведен ниже. Я хочу удалить весь мувиклип, прикрепленный в HolderL. но этот код не работает.

for(var j:int = 1; j<=3; j++) {  
    this["HolderL"+j].removeChild(q);  
}

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Flash Player 11 позволяет использовать это:

for (var j:int = 1; j<=3; j++) {  
    var container : DisplayObjectContainer = this["HolderL"+j];
    container.removeChildren();
} 

В более ранних версиях отсутствует команда removeChildren();у вас должно быть два цикла: один для циклического перебора видеоклипов контейнера, другой для обхода списка отображения и удаления всех дочерних элементов.

Кратчайший способ удалить все дочерние элементы контейнера до FlashPlayer 11:

while (container.numChildren > 0) container.removeChildAt(0);
1 голос
/ 12 февраля 2012

Из вашего кода непонятно, что такое q, но в основном, если вы хотите удалить все дочерние элементы из одного фрагмента ролика, самый простой способ - перебрать все дочерние элементы и удалить их по одному. Например:

for (var i:int = container.numChildren - 1; i >= 0; i--) {
    container.removeChildAt(i);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...