Oggi vedremo come gestire il componente ComboBox in Flash.
La casella combinata (ComboBox) consente all’utente di effettuare una sola selezione da un elenco a comparsa e può essere statica o modificabile. Una casella combinata modificabile consente all’utente di immettere il testo direttamente in un campo di testo presente all’inizio dell’elenco e selezionare una voce dall’elenco a comparsa.
Se l’elenco a comparsa raggiunge la fine del documento, viene aperto verso l’alto anziché verso il basso.
Quando viene effettuata una selezione nell’elenco, l’etichetta della selezione viene copiata nel campo di testo presente nella parte superiore della casella combinata. La selezione può essere effettuata sia con il mouse che con la tastiera utilizzando i tasti freccie direzionali e Tab.
Inseriamo la combobox sullo Stage
Andiamo su Finestra >> Componenti >> ComboBox
Una votla inserita sullo stage, assegnamo un nome istanza come combo

A questo punto andiamo a vedere il codice da inserire nel primo fotogramma:
//leggi e carica i dati dal file xml
dati_xml = new XML(); // nuovo oggetto XML
dati_xml.ignoreWhite = true; // elimino gli spazi tra le parole
dati_xml.onLoad = function(success) { //se è stato caricato
if (success) {
// leggo i nodi del file XML
var nodes = this.firstChild.childNodes;
for (var i = 0; i var descrizione = nodes[i].attributes.descrizione;
var valore = nodes[i].attributes.valore;
var itemz = {label:”"+descrizione+”", data:”"+valore+”"};
_root.combo.addItem(itemz);
}
} else {
trace(”no load”);
}
};
dati_xml.load(”list.xml”); // nome del file xml
//fine caricamento
//associa evento al combobox
combolistener = new Object(); // nuoovo oggetto
combolistener.change = function(eventObj) { // funzione cambia
var eventSource = eventObj.target; // impsoto il target
var elemento = eventSource.selectedItem; // impsoto l’elemento
var valoreelemento = elemento.label; // impsoto il valoreelemento
var datavaloreelemento = elemento.data; // impsoto il datavaloreelemento
stato.text = “Hai premuto “+valoreelemento+” il suo valore è “+datavaloreelemento;
};
combo.addEventListener(”change”, combolistener); // associo l’evento
Invece questo è il file XML, in cui inseriremo le voci e i valori nella ComboBox
<?xml version="1.0" encoding="iso-8859-1"?>
<elenco>
<item descrizione="Button1" valore="1"></item>
<item descrizione="Button2" valore="2"></item>
<item descrizione="Button3" valore="3"></item>
<item descrizione="Button4" valore="4"></item>
<item descrizione="Button5" valore="5"></item>
<item descrizione="Button6" valore="6"></item>
<item descrizione="Button7" valore="7"></item>
<item descrizione="Button8" valore="8"></item>
<item descrizione="Button9" valore="9"></item>
<item descrizione="Button10" valore="10"></item>
</elenco>
Scarica il sorgente
Guarda il Tutorial
ABC, Flash, Sviluppo, Tutorial

Pagine: « 1 [2] Mostra tutto
Pagine: « 1 [2] Mostra tutto
tag abilitati: <code> </code> | <a href=""> </a> | <b> </b> | <i> </i>
Samu
14 Luglio 2008 alle 11:06 am
Molto utile questo tutorial solo ho una domanda:
Nel mio combobox ho dei valori che sono più lunghi della larghezza del componente e quindi vengono tagliati.
Io vorrei, mantenendo la larghezza del componente quando è “chiuso” , vari la larghezza solo della tendina che si apre.
Naturalmente mantenendo la larghezza del componente “chiuso” quando si effetuerà la scelta il valore sarà tagliato ma per scegliere sarebbe utile che il valore sia tutto visibile.
E’ possibile fare ciò? E se si come?
Grazie
Roger
16 Luglio 2008 alle 17:00 pm
Salve a tutti!
Ho un combobox (popolato da un xml) che vorrei si caricasse andando direttamente ad una voce specifica.
Vorrei ottenere lo stesso risultato che si ha quando in html si aggiunge al tag il valore “selected”.
Qualcuno saprebbe gentilmente darmi qualche dritta? grazie
Roger
16 Luglio 2008 alle 17:27 pm
Ho trovato il modo:
miocombobox.selectedIndex = miocombobox.length-1;
dove la voce, che mi interessa sia “preselezionata”, si trova al penultimo posto della mia combobox.
Sò che non è di sicuro la soluzione più elegante ma vedo che funziona..