2011-06-24 42 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