Форум 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=117611)

gnus 01.11.2008 00:09

а removeAllChildren() не покатит?
или это только во Flex?

etc 01.11.2008 00:13

В AS3 такого метода нет.

wvxvw 01.11.2008 00:37

Ха, я бы тоже не поверил... даже проверять бы не стал... вобщем О.о

Волгоградец 01.11.2008 10:41

Господа, можете объяснить, почему вы считали код wvxvw более медленным нежели код __etc? Что-то я особой разницы не вижу...

etc 01.11.2008 12:45

Цитата:

Сообщение от Волгоградец (Сообщение 774202)
Господа, можете объяснить, почему вы считали код wvxvw более медленным нежели код __etc? Что-то я особой разницы не вижу...

Разница в том, что код wvxvw в цикле запрашивает геттер numChildren и удаляет ребенка с нулевого индекса.
Постоянный запрос геттера, как вызов функции, по определению должен быть медленнее обращения к локальной переменной. При работе с массивами удаление первого элемента занимает больше времени, чем последнего, из-за происходящего смещения индексов элементов.

Как выяснилось, в модели DisplayObjectContainer элемент на нулевом индексе оказывается последним в массиве элементов, а не наоборот. Именно поэтому удаление последнего элемента в display list медленнее, чем первого. Ну а геттер numChildren оказался таким же быстрым, как и декремент локальной переменной, вероятно в силу того, что декремент выполяется в несколько действий, с конвертацией и прочим.

Волгоградец 01.11.2008 12:49

Ух ты. Круто и понятно. Спасибо, __etc.

klafuda_klalafu 14.12.2008 14:21

а если надо не удалять объекты в родителе а просто к примеру выстроить их попорядку? как просто обратиться к объекту не зная его имени? к примеру в один спрайт вставляется куча кнопок, а потом что бы функция не делала выборку проверяя какие вставлены а какие нет а брала и все объекты в этом спрайте выстраивала по горизонтали друг за другом ...

etc 14.12.2008 14:27

getChildAt?


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

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