Crea un nuovo filmato, trascina sullo stage un combobox, poi cancellalo. Nel primo frame, incolla questo script:
codice:
// importo la classe ComboBox
import mx.controls.ComboBox;
// creo i due combobox
var combo1:ComboBox = createClassObject(ComboBox, "_c1", 1, {_x:10});
var combo2:ComboBox = createClassObject(ComboBox, "_c2", 2, {_x:combo1._x + combo1.width + 10});
// disabilito il secondo
combo2.enabled = false;
// setto il contenuto del primo
combo1.dataProvider = [
{label:"- seleziona -", data:null},
{label:"AREA 1", data:["SEDE A", "SEDE C"]},
{label:"AREA 2", data:["SEDE A", "SEDE B"]},
{label:"AREA 3", data:["SEDE A", "SEDE B", "SEDE F"]}
];
// creo un oggetto per gestire gli eventi dei combobox
var listener:Object = new Object();
listener.change = function(evt:Object):Void
{
// in base al combobox selezionato
switch(evt.target)
{
case combo1:
// recupero l'oggetto data associato all'elemento selezionato
var data = evt.target.selectedItem.data;
// se l'oggetto è nullo (il primo è nullo apposta)
if(data == null){
// svuoto il secondo combobox
combo2.dataProvider = [];
// lo disabilito
combo2.enabled = false;
} else {
// abilito il combobox
combo2.enabled = true;
// associo i dati come dataProvider
combo2.dataProvider = data;
}
break;
case combo2:
// traccio l'oggetto selezionato
trace(evt.target.selectedItem);
break;
}
};
// metto l'oggetto in ascolto degli eventi dei combobox
combo1.addEventListener("change", listener);
combo2.addEventListener("change", listener);