Flex错误:2025迁移到Flex 3到4



目前,我正在进行从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。

有指针吗?

在调用form.childIndex(childId)之前,您需要弄清楚.parent对于childId是什么。#2025错误应该告诉您,在您调用form.getChildIndex(childId) 时,childId的父级不是form

尝试在getChildIndex调用之前添加trace("parent of childId " + childId.parent)

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

或者,再次更新您的答案,并包含form的MXML,该MXML显示childId是直系后裔?

当我尝试在creationComplete方法中获取childId的ChileIndex时,它运行得很好。似乎在初始化阶段,我们试图访问状态的子索引,因此我们得到了错误,因为该子索引可能没有在状态中布局。

最新更新