Ese es el problema, que no sé como decirle a la función almacenaCiudad() cual es la provincia seleccionada.
Con este codigo que pongo ahora logro que la función almacenaCiudad() reciba el valor "0" cuando en el primer combobox elijo la opción "- seleccione-". Pero eso lo consigo porque meto lo de "data" a mano. ¿Sabes cómo puedo hacer para asignar un valor de "data" a cada elemento de la array automaticamente? Es que sino no veo como avanzar.
Código actionscript:
Ver originalcbo_ciudad.enabled = false;//mantiene apagado el combobox de ciudad
cbo_provincia.addEventListener("change", eventoComboBox);//escucha el combobox provincia y cuando cambia lanza el evento
function eventoComboBox(evento) {
if(evento.target.selectedItem.data == 0){//si el data de cbo_provincia es menor que 0...
almacenaCiudad(evento.target.selectedItem.data);//¿envia ese valor a la funcion almacenaCiudad?
}else{
cbo_ciudad.enabled = false;//Si no sigue igual
}
}
function almacenaProvincia() {
aProvincia = new Array({label:"- Selecciona -", data:0});
aProvincias = this.firstChild.childNodes;//carga los primeros hijos del XML en esta array
vTotal = aProvincias.length;//cuenta cuantos nodos hay
for (i=0; i<vTotal; i++) {
if(aProvincias[i].nodeName == "provincia") {//si el nombre del nodo es provincia...
aProvincia.push(aProvincias[i].attributes.pNombre);//almacena el atributo pNombre en esta array
}
}
cbo_provincia.dataProvider = aProvincia;//carga los datos de la array en el combobox
}
function almacenaCiudad(opc) {
trace(opc);
aCiudad = new Array({label:"- Selecciona -", data:0});
aCiudades = miXML.firstChild.firstChild.childNodes;
vTotalCiudad = aCiudades.length;//cuenta cuantos nodos hay
trace (aCiudades);
for (i=0; i<=vTotalCiudad; i++){
if (aCiudades[i].nodeName == "ciudad")
aCiudad.push(aCiudades[i].attributes.cNombre);
}
cbo_ciudad.dataProvider = aCiudad;
cbo_ciudad.addEventListener("load", ciudadCargada);
cbo_ciudad.enabled = true;
}