我有一個看起來像這樣的火花形式。我試圖通過表單循環,並將每個DropDownList的id推送到一個數組中。在Flex中循環顯示兒童4
我能夠成功地跟蹤表單項目的ID。但我無法使用任何用於訪問兒童的方法來獲取DropDownList的ID,而我使用的是Flex 3。我是新的Flex 4,經過一些閱讀後,我明白其由於某些與火花結構有關的原因。
這是表格。
<s:Form id="facilities" x="51" y="32" width="595" height="402">
<s:FormHeading label="SWOT ANALYSIS FORMAT FOR PLOT PURCHASE" fontSize="15">
</s:FormHeading>
<s:FormItem id = "petrolPumpsFormItem" required="true" width="464" label="Petrol Pumps:">
<s:DropDownList id = "petrolPumps" width="220" prompt="Select distance from the plot" labelField="distance" >
<s:dataProvider>
<s:ArrayCollection>
<fx:Object distance="1-3 km" mark="100"/>
<fx:Object distance="3-6 km" mark="90"/>
<fx:Object distance="6-9 km" mark="80"/>
<fx:Object distance="9-12 km" mark="70"/>
<fx:Object distance="12-15 km" mark="60"/>
<fx:Object distance="15-18 km" mark="50"/>
</s:ArrayCollection>
</s:dataProvider>
</s:DropDownList>
</s:FormItem>
<s:FormItem id="filmTheatreFormItem" required="true" width="464" label="Film Theatre:">
<s:DropDownList id="filmTheatre" width="220" prompt="Select distance from the plot" labelField="distance" >
<s:dataProvider>
<s:ArrayCollection>
<fx:Object distance="1-3 km" mark="100"/>
<fx:Object distance="3-6 km" mark="90"/>
<fx:Object distance="6-9 km" mark="80"/>
<fx:Object distance="9-12 km" mark="70"/>
<fx:Object distance="12-15 km" mark="60"/>
<fx:Object distance="15-18 km" mark="50"/>
</s:ArrayCollection>
</s:dataProvider>
</s:DropDownList>
</s:FormItem>
<s:FormItem id= "atmFormItem" required="true" width="464" label="ATM:">
<s:DropDownList id= "atm" width="220" prompt="Select distance from the plot" labelField="distance" >
<s:dataProvider>
<s:ArrayCollection>
<fx:Object distance="1-3 km" mark="100"/>
<fx:Object distance="3-6 km" mark="90"/>
<fx:Object distance="6-9 km" mark="80"/>
<fx:Object distance="9-12 km" mark="70"/>
<fx:Object distance="12-15 km" mark="60"/>
<fx:Object distance="15-18 km" mark="50"/>
</s:ArrayCollection>
</s:dataProvider>
</s:DropDownList>
</s:FormItem>
</s:Form>
我可以像這樣獲得對Form的支持。 '設施'是表單的名稱。
for (var i:int = 0 ;i <= facilities.numElements-1;i++)
{
var item:IVisualElementContainer = facilities.getElementAt(i) as IVisualElementContainer;
trace(item);
}
我試過這個鏈接http://www.igorcosta.org/?p=366並試圖使用那裏給出的類。
問題是發生錯誤。 Flash Builder將我帶到代碼中第二個函數的第二個循環中,並顯示那裏使用的item.numElements正在創建問題。我試圖在我的代碼中使用item.numElements(上面顯示的那個符合FormItem標識的代碼),它也不起作用。任何人都有任何線索?
我在這裏收到混合信號。你是什麼意思numElements「不工作」你有編譯器錯誤?還是運行時錯誤?什麼是錯誤?在你的循環中,你不能將你的項目保存到一個ArrayCollection中,作爲DropDownList的dataProvider的來源嗎? – JeffryHouser
您是否閱讀了Igor Costa對該文章的評論?我非常贊同第一個(由Badu):將表單項值綁定到模型對象並處理該模型對象。 IMO在一個企業級的Flex應用程序中,你永遠不應該通過循環視覺元素來訪問數據。 – RIAstar
當我把痕跡(item.numElements);在我的循環中,我得到這個錯誤。 TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。 –