Нулевая ссылка на группу в смежном NavigatorContent - PullRequest
1 голос
/ 07 февраля 2012

У меня есть TabNavigator с NavigatorContent's в MXML.Внутри первого NavigatorContent у меня есть группа с id="canvas";Я загружаю SWFLoader здесь.Внутри следующего NavigatorContent у меня есть другая группа с id="sheetcanvas";Я хочу загрузить SWFLoader здесь.Проблема в том, что когда я это делаю, я получаю нулевую ссылку ошибки # 1009 на sheetcanvas id.

Если я возьму ту же группу и поместу ее куда-нибудь еще, она будет работать без нулевой ссылки!

Та же ошибка возникает и при динамической загрузке во вторую группу, которая существует во втором NavigatorContent аккордеона.Я делаю что-то не так или есть ошибка?

<mx:TabNavigator id="tabs" width="650" height="100%">
        <s:NavigatorContent width="100%" height="100%" label="Tab 1">
            <mx:DividedBox top="3" bottom="3" right="3" left="3" direction="vertical" width="100%" height="100%">

                <s:BorderContainer x="28" y="10" width="100%" height="100%">
                    <s:TextArea y="6" width="120" height="24" borderVisible="false"
                                text="{selectedNode.@label}"/>
                    <s:CheckBox y="6" right="10" label="Show Grid" selected="true"/>
                    <s:Scroller x="8" y="30" width="99%" height="90%" horizontalCenter="0">
                        <s:Group>
                            <s:Group id="canvas"/>

                        </s:Group>
                    </s:Scroller>
                </s:BorderContainer>
                <flexmd:FileEditor id="edit" width="100%" height="100%"
                                   enablePrint="true" enableSyntaxColoring="true" savePhp="/FileEditor/php/save.php"
                                   staticDemo="false"
                                   chromeColor="0xDCDCDC"
                                   />

            </mx:DividedBox>    
        </s:NavigatorContent>
        <s:NavigatorContent width="100%" height="100%" label="Tab 2">
            <mx:DividedBox top="3" bottom="3" right="3" left="3" direction="vertical" width="100%" height="100%">
                <s:BorderContainer x="28" y="10" width="100%" height="325">
                    <s:Scroller x="8" y="30" width="99%" height="100%" horizontalCenter="0">
                        <s:Group>
                            <s:Group id="scanvas"/>
                        </s:Group>
                    </s:Scroller>
                </s:BorderContainer>
            </mx:DividedBox>    
        </s:NavigatorContent>   
    </mx:TabNavigator>

1 Ответ

6 голосов
/ 07 февраля 2012

Это не ошибка.Некоторые контейнеры (например, TabNavigator или ViewStack) не инициализируют свои дочерние элементы, пока они не будут показаны.Если вам нужно иметь доступ к (скрытым) дочерним элементам с самого начала, установите для свойства creationPolicy значение all.

Например.<mx:TabNavigator id="tabs" width="650" height="100%" creationPolicy="all">

Вот еще немного информации о creationPolicy .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...