рекурсивно получить всех детей, внуков и т. д. на стадии в as3 - PullRequest
1 голос
/ 03 ноября 2011

Я впервые использую рекурсию в ActionScript, поэтому я уверен, что есть кое-что, что я не учел.То, что я пытаюсь сделать, - это просто пройтись по дочерним этапам и отследить, что такое дочерний элемент и индекс.Вот код

    public function recurseStage(dOC:DisplayObjectContainer)
    {
        var numCh = dOC.numChildren;
        for(var i = 0; i < numCh; i++)
        {
            var child = dOC.getChildAt(i);  
            trace("child: " + child + " at i: " + i);

            if(child.numChildren > 0)
            {
                recurseStage(child);
            }
        }
    }

проблемная область, кажется, является фактическим вызовом recurseStage () в конце.Как и заявление if до этого.Я знаю, что не все дети будут иметь свойство .numChildren, но я не уверен, что использовать вместо этого.Это должно быть легко исправить, но мой мозг просто не помогает мне прямо сейчас.Кроме того, если есть лучший способ, чем это, пожалуйста, дайте мне знать.Заранее спасибо.

1 Ответ

3 голосов
/ 03 ноября 2011

используйте
if (child is DisplayObjectContainer && child.numChildren > 0)

вместо

if(child.numChildren > 0)

...