2011-06-24 41 views
1

目前,我正在从Flex 3进行代码迁移到4,并且我正在设置currentState在初始化弹出窗口的函数中。Flex错误:2025在迁移到Flex 3到4

代码是这样的,

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

您可以添加具有'id =“form”'的源代码吗?你能确认'childId'的值是'form'的索引吗? – mrk

+0

@ Mrk:我在 Miral

+0

中添加了一个id为“childId”的formItem代码已更新。任何人都可以建议它有什么问题吗? – Miral

回答

0

当我尝试在creationComplete方法中为childId使用getChileIndex时,它运行良好。看起来,在初始化阶段,我们试图访问一个国家的儿童索引,因此我们得到了错误,因为该儿童可能没有在该州布局。

+0

但是,当我使用flex 4.5 sdk编译代码时,这个特定问题出现了,它在使用flex 3 sdk编译时没有任何错误地工作。希望这可以帮助。 – Miral

0

在致电form.childIndex(childId)之前,您需要弄清楚.parent用于childId。 A#2025错误应该告诉你,childID的母公司是不是form在您所呼叫form.getChildIndex(childId)

尝试getChildIndex调用之前加入trace("parent of childId " + childId.parent)时间:

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

否则,再次更新您的答案,包括MXML为form,表明childId是直接后代?

+0

感谢Mrk的建议,我为此解决了一个问题。我投入了2天的时间,并且令我惊讶的是,当我尝试在creationComplete方法中为childId获取ChileIndex时,它运行良好。看起来在初始化阶段,它不起作用。有趣的部分只是我的当前代码是由flex 4.5sdk编译的,而我得到了这个问题,而它在flex 3 sdk上工作得很好。我会明天尝试这个建议,谢谢... – Miral

+0

当我追踪“childId.parent”时,它返回null。 – Miral