Comunidad de diseño web y desarrollo en internet online

Problema con combobox y xml

Citar            
MensajeEscrito el 24 Feb 2011 05:25 pm
Hola a todos, tengo una duda, con un par de combobox en flash, resulta que tengo un xml con esta estructura:

Código XML :

<videos>
    <edicion ID="0" NOMBE="VIDEOS 1">
        <fecha ID="9">
              <flv ID="0" TITULO="TITULO VIDEO 1" URL="video1.flv" />
              </fecha>
   <fecha ID="10">
              <flv ID="1" TITULO="TITULO VIDEO 2" URL="video2.flv" />
              </fecha>
         <fecha ID="11">
             <flv ID="2" TITULO="TITULO VIDEO 3" URL="video3.flv" />
             </fecha>
        </edicion>
    <edicion ID="1" NOMBE="VIDEOS 2">
     <fecha ID="1">
             <flv ID="0" TITULO="TITULO VIDEO 1" URL="video4.flv" />
        </fecha>
     <fecha ID="2">
        <flv ID="1" TITULO="TITULO VIDEO 2" URL="video5.flv" />
        </fecha>
     <fecha ID="3">
        <flv ID="2" TITULO="TITULO VIDEO 3" URL="video6.flv" />
        </fecha>
   </edicion>
</videos>

y necesito introducir en un combobox el atributo "NOMBRE"

Por otro lado en otro combobox el nodo fecha ID que dependerá de que atributo NOMBRE escojas en el anterior combobox.

Por último en un clip de película creo unos botones de manera dinámica en los que aparecerá el atributo TITULO de los vídeos y que deverán llamar a la URL del vídeo.

Lo que no logro hacer es que los combobox me recojan los valores del xml.

En mi AS tengo lo siguiente:

Código ActionScript :

var xmlVideos:XML = new XML();
xmlVideos.ignoreWhite = true;
function doLoadXmlVideos() {
   xmlVideos.onLoad = function(success:Boolean):Void {
      if(success) {
         videosTotales = xmlVideos.firstChild.childNodes.length;
         
         for(var i:Number=0; i<videosTotales; i++) {
            tituloVideo[i] = xmlVideos.firstChild.childNodes[i].attributes.NOMBE;
            aDT[i] = xmlVideos.firstChild.childNodes[i].childNodes.length;
            aVT[i] = new Array(aDT[i]);
            aFechas[i] = new Array(aDT[i]);
            aData[i] = new Array(aDT[i]);
            
            for(var j:Number=0; j<aDT[i]; j++) {
               aVT[i][j] = xmlVideos.firstChild.childNodes[i].childNodes[j].childNodes.length;
               aFechas[i][j] = xmlVideos.firstChild.childNodes[i].childNodes[j].attributes.ID;
               
               aData[i][j] = new Array(aVT[i][j]);
               
               for(var k:Number=0; k<aVT[i][j]; k++) {
                  aData[i][j][k] = new Array(2);
                  
                  aData[i][j][k][0] = xmlVideos.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes.TITULO;
                  aData[i][j][k][1] = xmlVideos.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes.URL;
               }
            }
         }
            doSetEditions();
                                domenuComboVid();
         }
      } else {
         trace('no se a podido cargar el archivo XML');
      }
   }
   xmlVideos.load(vMainRoot + "xml/videos.xml");
}


y para que el primer combobox recoja los valores del xml:

Código ActionScript :

function domenuComboVid() {
   // Limpia Datos:
           misVideos.removeAll();
   // Agregar datos:
   for(var i:Number=0; i<videosTotales_f; i++) {
      misVideos.addItem( {data:i, label:tituloVideo[i]} );
   }
}


Pero no me carga nada.
¿Como podría cargar los datos en los combobox?

Mucha gracias!

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Feb 2011 11:34 am
Bien, ya he logrado meter la información del atributo NOMBE en el primer combo.

He añadido esta linea de código en el primer bucle for:

Código ActionScript :


_root.Video.addItem(  {data:i, label:edicionx[i]} );



Ahora el problema que tengo es que en el segundo combo, donde tengo que meter la fecha ID me salen todas las fechas ID y no solo las que corresponden al NOMBE que está seleccionado en el primer combo. Este código lo añado en el segundo bulce for para que me carge los dias en el segundo combo:

Código ActionScript :


_root.dias.addItem(  {data:i, label:"dia"+[aFechas]} );



¿como podría solucionar esto? que solo me aparezca la fecha ID de la edición seleccionada?

gracias.

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Feb 2011 12:56 pm
Vale, he logrado meter los días en el segundo combobox con una función:

Código ActionScript :

function doSetDays() {
   for(var i:Number=0; i<aDT[vEA]; i++) {
       _root.dias.addItem(  {data:i, label:"dia "+[aFechas[vEA][i]]} );
   }
   doSetVideoList();
}


Ahora solo me queda hacer que las opciones del primer combobox carguen los valores correctos en el segundo.

¿Se utiliza la funcion onChange para esto?

¿como podría hacerlo?

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Feb 2011 10:28 am
hola otra vez, ya he logrado que las opciones del primer combobox se comuniquen con el segundo, pero aún así no me salen las opciones correctas. he puesto lo siguiente:

Código ActionScript :

var edicion:ComboBox;
edicion.addEventListener("change",onComboChange);
function onComboChange(event:Object):Void {
   _root.dias.removeAll();
   var label:String = event.target.selectedItem.label;
   var data:String = event.target.selectedItem.data;
   doSetDays();
}


con esta funcion, me carga los datos en el segundo combobox cada vez que selecciono un item en el primero, pero siempre me selecciona los mismos.
¿como puedo hacer que seleccione los items correctos en el segundo combobox?

gracias.

Por plug

78 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.