このリンクに触発されたsparkComboBoxにXMLListCollectionを使用しています
http://blog.shortfusion.com/index.cfm/2009/4/15/FlexAS3-Custom-ComboBox-for-Countries-with-XML
XMLListCollectionはここで定義されます:
public class ComboBox_Country extends ComboBox {
private var Country:XML=new XML(
<countries>
<country code="US" iso="840" label="United States" />
<country code="CA" iso="124" label="Canada" />
<country code="GB" iso="826" label="United Kingdom" />
....
<country code="ZM" iso="894" label="Zambia" />
<country code="ZW" iso="716" label="Zimbabwe" />
</countries>);
public function ComboBox_Country() {
dataProvider = new XMLListCollection(Country.children());
labelField = '@label';
}
mxmlでは次のように呼び出されます。
<mycomp:ComboBox_Country id="countryComboBox" width="100%"/>
ユーザーが選択すると、次の場所からインデックスを取得できますcountryComboBox.selectedIndex
。しかし、国の文字列が必要であり、XMLListCollectionからそれを抽出する方法がわかりません。デバッガーを見ると、次のように表示されます。
ユーザーがインデックス2(英国など)を選択したとします。返すためにデバッガーに何を入力する必要がありますUnited Kingdom
か?私は次のようなことを試しました:
countryComboBox.Country.getItemAt(2)
countryComboBox.Country.getItemAt(2).label
countryComboBox.Country[2]
countryComboBox.Country.label.getItemAt(2)
etc...
無駄に。