Talvez o ComboBox do Flex seja um dos componentes mais fáceis de se usar, dentre todas as tecnologias existentes. Os componentes do Flex que manipulam uma lista de dados possuem um conceito muito legal, que é o seguinte. Você passa para o componente uma Array de Objetos. Então, aquele componente (o ComboBox) tem um array de objetos dentro dele. Agora basta definir qual propriedade do objeto será visível na combo. Vamos a um exemplo:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="OnCreateComplete()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.collections.ArrayCollection;
[Bindable]
private var ArrayObj:ArrayCollection = new ArrayCollection();
private function OnCreateComplete():void
{
var obj1:Object = new Object();
obj1.nome = "Fulano 1";
obj1.tel = "111222";
var obj2:Object = new Object();
obj2.nome = "Fulano 2";
obj2.tel = "333222";
var obj3:Object = new Object();
obj3.nome = "Fulano 3";
obj3.tel = "333555";
ArrayObj.addItem(obj1);
ArrayObj.addItem(obj2);
ArrayObj.addItem(obj3);
}
private function OnItemChange():void
{
Alert.show("Pessoa " + Combo.selectedItem.nome + " tem o telefone " + Combo.selectedItem.tel);
}
]]>
</mx:Script>
<mx:ComboBox id="Combo" dataProvider="{ArrayObj}" labelField="nome" change="{OnItemChange()}"/>
</mx:Application>
Neste exemplo, criamos um array de objetos na função OnCreateComplete. Quando criamos o Combobox, definimos a propriedade dataProvider, que é o array de objetos, e depois definimos a propriedade labelField, que diz qual dos campos do objeto serão vistos na combo. O event change dispara a função OnItemChange que usa a propriedade selecteditem do Combobox para que possa obter informações sobre o atual objeto selecionado.