Как узнать порядок рендеринга компонентов во Flex - PullRequest
0 голосов
/ 15 апреля 2010

У меня есть компонент, у которого есть подкомпонент, оба они используют общую переменную из модели. Общая переменная должна быть установлена ​​родительским компонентом, прежде чем она сможет использоваться дочерним компонентом. Я сделал это в родительском компоненте:

<mx:Canvas
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    ...
    creationComplete="group1_completeHandler(event)" >
        ....
        protected function group1_activateHandler(event:Event):void {
           model.myVariable = something;
        }
   ....
   <components:myCustomComponent>
     ...
   <components:myCustomComponent>
 ...
</mx:Canvas>

Но по какой-то причине, когда код внутри myCustomComponent пытается использовать myVariable в первый раз, я получаю «нулевую» ошибку объекта. Это означает, что я предполагаю, что дочерний компонент визуализируется до вызова group1_activateHandler и, следовательно, myVariable устанавливается.

Что я должен сделать, чтобы родительский контейнер инициализировал переменную до создания дочернего компонента?

Ответы [ 2 ]

2 голосов
/ 15 апреля 2010

Вы должны установить переменную в initialize() вместо creationComplete(), которая вызывается после того, как все компоненты созданы и обработаны.

0 голосов
/ 15 апреля 2010

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

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