Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Удаление детей спрайта (http://www.flasher.ru/forum/showthread.php?t=172633)

Srednas 14.12.2011 12:22

Удаление детей спрайта
 
Здравствуйте.

Подскажите как можно удалить всех детей спрайта?
Не конкретно «такого-то» а всех.

КорДум 14.12.2011 12:26

Своей рекурсивной функцией удаления детей спрайта. Поищите по форуму, не раз говорилось.

goodguy 14.12.2011 12:26

Код AS3:

var i:int = yourSprite.numChildren;
while (i--) {
      yourSprite.removeChildAt(0);
}


КорДум 14.12.2011 12:28

goodguy, быстрее такой способ:
Код AS3:

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

=)

goodguy 14.12.2011 12:29

Да монопенисуально =)

DaFive 14.12.2011 13:42

Цитата:

Сообщение от КорДум (Сообщение 1051341)
goodguy, быстрее такой способ
=)

Почему?

КорДум 14.12.2011 13:46

Тестами кто-то тут подтверждал.

i.o. 14.12.2011 14:01

Цитата:

Тестами кто-то тут подтверждал.
Тест в дебаг-плеере не дает полной картины.
http://www.flasher.ru/forum/showpost...0&postcount=20

ChuwY 14.12.2011 14:37

Цитата:

Сообщение от КорДум (Сообщение 1051339)
Своей рекурсивной функцией удаления детей спрайта. Поищите по форуму, не раз говорилось.

Цитата:

Код AS3:

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


Это не рекурсивная, а таки итеративная. Рекурсивную (хотя итерации присутствуют) я вчера прикладывал:

Код AS3:

private function fullClear(container : DisplayObjectContainer):void{
  while(container.numChildren){
    var DOC: DisplayObjectContainer = container.removeChildAt(0) as DisplayObjectContainer;
    if(DOC){
      fullClear(DOC);
    }
  } 
}

Но это может быть и затратно и опасно :)

goodguy 14.12.2011 16:43

Цитата:

Сообщение от i.o. (Сообщение 1051363)
Тест в дебаг-плеере не дает полной картины.
http://www.flasher.ru/forum/showpost...0&postcount=20

Да и данные на столько близки, что не являются показателем.
В первом случае некоторое время тратится на создание и присваивание значения переменной x
А сам код выполняется ни чуть не быстрее


Часовой пояс GMT +4, время: 05:35.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.