flash builder4 就是flex builder3升級後的說法- -感覺更統一了。
直接說官方給出的最新解釋吧:
ComboBox 控制項是 DropDownListBase 控制項的子類。與 DropDownListBase 控制項類似,當使用者從 ComboBox 控制項的下拉式清單中選擇某項時,資料項目將顯示在控制項的提示地區中。
這兩個控制項之間的一個區別是,ComboBox 控制項的提示地區是使用 TextInput 控制項實現的,而 DropDownList 控制項是通過 Label 控制項實現的。因此,使用者可以編輯控制項的提示地區,以輸入非預定義選項之一的值。
例如,DropDownList 控制項僅允許使用者從控制項的預先定義的機碼列表中進行選擇。ComboBox 控制項允許使用者既可以從預先定義的機碼中選擇,也可以在提示地區中輸入新項。您的應用程式可以識別已輸入一個新項,(可選)並將其添加到控制項的項列表中。
ComboBox 控制項還可以當使用者在提示地區中輸入字元時搜尋項列表。當使用者輸入字元時,將開啟控制項的下拉地區,然後滾動到項列表中最接近的匹配項並加亮。
注意:基於 Spark List 的控制項(Spark ListBase 類及其子類,如 ButtonBar、ComboBox、DropDownList、List 和 TabBar)不支援將 BasicLayout 類作為
layout 屬性的值。不要將 BasicLayout 與基於 Spark List 的控制項一起使用。
照這個說法
可以直接這樣做:
<?xml version="1.0" encoding="utf-8"?>
<!-- 控制 ComboBox 的一個執行個體 -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]//連結資料的標記
public var complexDP:ArrayCollection = new ArrayCollection(
[ {ingredient:"Salmon", category:"Meat"},
{ingredient:"Potato", category:"Starch"},
{ingredient:"Cucumber", category:"Vegetable"},
{ingredient:"Steak", category:"Meat"},
{ingredient:"Rice", category:"Starch"},
{ingredient:"Cumin", category:"Spice"}
]