Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перебор всех Movie Clip (http://www.flasher.ru/forum/showthread.php?t=144254)

ageent 07.09.2010 17:03

Перебор всех Movie Clip
 
Привет всем. Есть основной Movie Clip в который вложено много других Movie Clip, есть ли возможность перебрать все вложенные Movie Clip? спасибо

КорДум 07.09.2010 17:04

getChildAt?

gloomyBrain 07.09.2010 17:09

чуть подробнее будет так

Код AS3:

var i:int = 0;
while (i < this.numChildren) {
        this.getChildAt(i)// что-то там с ним делаем
        i++;
}


ageent 07.09.2010 17:13

большое спасибо.

incvizitor 07.09.2010 19:30

Ну может так быть что уровней вложенности несколько, тогда можно получить их все массивом, а потом что-то им применять:

Код AS3:

function getAllChildren(obj:DisplayObjectContainer, getSubChildren:Boolean=false):Array {
        var children:Array = [];
        var i:uint=0;
        while (i < this.numChildren) {
                var ch:DisplayObject = this.getChildAt(i);
                children.push(ch);
                if ((getSubChildren) && (ch is DisplayObjectContainer))
                        children = children.concat(getAllChildren(ch, true));
                }
                i++;
        }               
        return children;
}


3p.station 21.10.2010 16:53

интересный вариант
если я правильно понял this надо заменить на obj ?
навпример мне надо удалить все объекты -
нужно просто пробежать по ВСЕМУ массиву и занулить объекты или нужно еще делать removeChild ?(как я узнаю кто куда добавлен?)
спасибо!

nOobCrafter 21.10.2010 17:09

3p.station сначала удалить из дисплей листа а потом занулить ссылки и если есть отписаться от листенеров.

3p.station 21.10.2010 17:51

а если я занулю все объекты что добавлены в главный контейнер а потом удалю его из дисплейлиста(контейнер в котором все объекты с некоторой вложенностью) - так можно ?
выходит если я убрал главный - то все объекты что в нем тоже удаляются?

nOobCrafter 21.10.2010 18:28

листенеры могут удержать) хотя смотря на что у них там ссылки есть..

incvizitor 21.10.2010 20:16

@3p.station: да, this надо заменить на obj. Для removeChild код не самый лучщий. Это скорее для stop / play.


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

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