Comunidad de diseño web y desarrollo en internet online

no me carga el valor del XML dentro de un bucle...

Citar            
MensajeEscrito el 30 Jun 2005 02:48 pm
Hola... he pasado horas mirando el script y no consigo ver porque al clicar en los botones no me carga el valor (que viene de un XML).
Me explico...
Cargo el XML, con un bucle "for" creo los botones (_mc), y con el bucle asigno a cada uno lo que tiene que hacer cuando le clicas...
:evil:
EL PROBLEMA: cuando en un childNode[] le pongo la variable no sabe lo que le digo... devuelve undefined... sin embargo si le ponia como valor childNode[ boton_txt] si que funcionaba...
:evil: :evil: :evil:
segundo PROBLEMA: me hacen todos los botones lo mismo... no se porque, pero no me asigna a cada boton un childNode...

Os pongo el script... a ver si encontrais el error... porque ya no se que hacer... :cry: :cry: :cry:

Código :

   productos_xml.onLoad = function() {
      for (x=0; x<productos_xml.firstChild.childNodes[0].childNodes[0].childNodes.length; x++) {
         trace(i);
         _root.attachMovie("boton_mc", "boton"+(x+1), 10+x);
         if (x == 0) {
            _root["boton"+(x+1)]._x = 290;
         } else {
            _root["boton"+(x+1)]._x = _root["boton"+x]._x+17;
         }
         _root["boton"+(x+1)]._y = 478;
         _root["boton"+(x+1)].boton_txt = x+1;
         _root["boton"+(x+1)].onRelease = function() {
            _root.contenedor_mc.marca_txt = "Marca: "+productos_xml.firstChild.childNodes[0].childNodes[0].childNodes[x].childNodes[4].firstChild.nodeValue;
         };
      }


Os agradecería muchiiiiiiiisimo si alguien me echara una mano... :love: :love: :love:

Por Babau

26 de clabLevel



Genero:Femenino  

Italia

msie
Citar            
MensajeEscrito el 30 Jun 2005 04:45 pm
Bueno, considera lo siguiente: dentro del for estás asignándole el evento onRelease a todos tus botones, pero estás equivocándote al pasar la variable iterativa para ser utilizada dentro de este evento.

Razón: cuando el evento se ejecute en cualquiera de los botones, ya el ciclo habrá finalizado y la variable iterativa tendrá el valor que determinó la culminación del ciclo. Por supuesto, en el caso de que pudieras acceder a ella cuando el evento se ejecute (que no lo haces, pues tendrías que colocar _root.x), su valor no te serviría para lo que pretendes.

Posible solución:

Código :

 _root["boton"+(x+1)].marca = "Marca: "+productos_xml.firstChild.childNodes[0].childNodes[0].childNodes[x].childNodes[4].firstChild.nodeValue;
 _root["boton"+(x+1)].onRelease = function() {
            _root.contenedor_mc.marca_txt = this.marca;
 }; 


Espero no haberme puesto demasiado pesado con la explicación. :oops:

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 01 Jul 2005 01:01 pm
Muchas gracias por tu respuesta...
:lol: Tampoco me funciono poniendo una variable fuera y llamandola... pero gracias a ti descubrí como hacerlo... simplemente usando el texto del boton en vez de la x.. para llamar al Child del XML...

Muchas gracias... :love: :love:

Por Babau

26 de clabLevel



Genero:Femenino  

Italia

msie

 

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