Добавление динамических объектов DisplayObject во Flex - PullRequest
0 голосов
/ 05 января 2010

Я добавляю объекты DisplayObject на холст, используя

ContentContainer.addChild(c);

Где ContentContainer - это мой объект Canvas, а c - объект DisplayObject, созданный во время выполнения

У некоторых из этих объектов DisplayObject также есть собственные дочерние объекты, которые добавляются во время выполнения до добавления объекта DisplayObject в Canvas

Затем мне нужно перебрать все дочерние элементы ContentContainer, но в первый раз, когда я делаю это, он говорит, что у ContentContainer нет дочерних элементов (то есть ContentContainer.numChildren = 0). Если я сделаю это снова, то все будет в порядке и вернет правильное количество детей.

Мне нужно позвонить, чтобы ContentContainer пересчитал, сколько у него детей?

Ответы [ 2 ]

2 голосов
/ 05 января 2010

Как заметил Майкл, было бы полезно увидеть код, но вы можете посмотреть Обзор событий и О разделах политики создания в документации - http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_3.html

В частности, событие childAdd может быть тем, что вы хотите прослушать, прежде чем выполнять его итерацию:

add Отправляется компонентом после того, как компонент был добавлен в его контейнер, а родительский и дочерний элементы находятся в согласованном состоянии. Это событие отправляется после того, как контейнер отправил событие childAdd и произошли все изменения, которые необходимо внести в результате добавления.

= Ryan ryan@adobe.com

0 голосов
/ 05 января 2010

Я выполнил аналогичную задачу с callLater, чтобы дождаться завершения перетаскивания, а затем пересчитать некоторые задачи. Это может сработать для вас.

public function myFunct():void{
    //do your adding
    callLater(
        function():void{
            //do your loop
        }
    )
}
...