Ошибка Flex: 2025 при переходе на Flex 3 к 4 - PullRequest
1 голос
/ 24 июня 2011

В настоящее время я выполняю миграцию кода с Flex 3 на 4 и устанавливаю currentState в функции инициализации всплывающего окна.

код такой,

 currentState = "xyz";

 // Now I try to access child which I am adding in "xyz" state definition.
 var childIndex:int = form.getChildIndex(childId); // this throws error 2025

Определение состояния

<mx:State name="xyz">
    <!-- I remove some children and add some children before this -->   
   <mx:AddChild relativeTo="{form}" position="lastChild"
                creationPolicy="all">
    <mx:FormItem id="childId"
          label="Frequency">
        <mx:ComboBox id="cmbId"
                             dataProvider="{dataP}"
                 selectedIndex="0"
                             change="function()"/>                                     </mx:FormItem>
</mx:AddChild>

Этот фрагмент кода работал нормально, пока я не начал компилировать код с помощью Flex 4.5sdk. С тех пор он выдает мне ошибку # 2025.

Есть указатели?

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Когда я пытался получить getChileIndex для childId в методе creationComplete, он работал хорошо.Похоже, что на этапе инициализации мы пытаемся получить доступ к дочернему индексу состояния, и, следовательно, мы получаем ошибку, поскольку этот дочерний элемент не был размечен в этом состоянии.

0 голосов
/ 27 июня 2011

Вам необходимо выяснить, что .parent для childId, прежде чем звонить form.childIndex(childId). Ошибка # 2025 должна указывать на то, что родитель childId не является form в то время, когда вы звоните form.getChildIndex(childId)

Попробуйте добавить trace("parent of childId " + childId.parent) перед вызовом getChildIndex:

trace("parent of childId " + childId.parent); 
form.childIndex(childId); 

Или еще раз обновите свой ответ и включите MXML для form, который показывает, что childId является прямым потомком?

...