目前,我正在进行从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。
任何指针?
答案 0 :(得分:0)
在调用.parent
之前,您需要确定childId
的{{1}}是什么。 #2025错误应该告诉你,当你打电话给{1}}时,childId的父母不是form.childIndex(childId)
尝试在getChildIndex调用之前添加form
:
form.getChildIndex(childId)
或者,再次更新您的答案并包含trace("parent of childId " + childId.parent)
的MXML,其中显示childId是直接后代?
答案 1 :(得分:0)
当我尝试在creationComplete方法中为childId获取chileIndex时,它运行良好。似乎在初始化阶段,我们正在尝试访问状态的子索引,因此我们得到错误,因为该子状态可能没有在该状态中布局。