Comunidad de diseño web y desarrollo en internet online

¿Cómo activar un botón con un Array y un bucle FOR?

Citar            
MensajeEscrito el 15 May 2007 03:39 pm
Hola a todos:
tengo el siguiente código y me funciona bien, pero necesito que el bucle me funcione con los botones que tengo en el stage(no están incluidos dinámicamente). En otras palabras quiero que los botones queden activos dependiendo el Array que estoy creando con la info de un XML.


Código :

var port_xml:XML = new XML();
port_xml.ignoreWhite = true;
var indice_tema = 0;// indice del tema que quiero mostrar
port_xml.load("trabajos.xml");
port_xml.onLoad = function(exito) {
   if (exito) {
              //creo Arrays
      foto = new Array;
      titulo = new Array;
      explicacion = new Array;
      //creo la matrices con la info y las cargo con la info del xml
      largo = port_xml.firstChild.childNodes[indice_tema].childNodes;
      for(indice=0;indice<largo.length;indice++) {
foto.push(port_xml.firstChild.childNodes[indice_tema].childNodes[indice].firstChild.firstChild.nodeValue);
titulo.push(port_xml.firstChild.childNodes[indice_tema].childNodes[indice].firstChild.nextSibling.firstChild.nodeValue);
explicacion.push(port_xml.firstChild.childNodes[indice_tema].childNodes[indice].lastChild.firstChild.nodeValue);
      }
      //muestro los botones
      //aquí se ve bien pero lo que quiero es asignarle estas funciones a cada boton...
      for(i=0;i<foto.length;i++) {
         _root.armado_p['b'+[i+1]].gotoAndPlay(16);//muevo el mc boton al frame que quiero
         contenedor.muestraFoto(foto[i]);
         titulotxt.htmlText = titulo[i-1];
         explica.htmlText = explicacion[i-1];
         }



Entonces lo que quiero es que cuando haga click en cada botón me aparezcan los respectivos textos y foto y no que me aparezca el mismo siempre. Les reitero que los botones ya están en el stage asì que no debo crearlos...

Muchas gracias por su ayuda ....espero me respondann....AAAAH! :shock:

Por naitsirk

1 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 15 May 2007 04:48 pm
Err no entendí del todo el código, pero suponiendo que tengas un una caja de texto info_txt, esto es lo que deberías hacer:

Código :

var ln:Number=foto.length;
for(i=0;i<ln;i++) {
var btn=_root.armado_p['b'+[i+1]]
btn.gotoAndPlay(16)
//Resto de acciones.
btn.textoQueQuieroMostrar="El texto que quiero mostrar en este, el botón de índice " + i;
btn.onRelease=function(){
info_txt.text=this.textoQueQuieroMostrar;
}

}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 May 2007 07:52 am
Gracias por la ayuda pero tampoco me funciona.
Me podrían decir porqué este bucle no me funciona, se los dejo aquí con comentarios para que me entienda...

Código :

for(i=0;i<foto.length;i++) {
      var btn = _root.mc_menu['b'+[i+1]];//estos son los botones que estan en el mc_menu y se llaman b1, b2, b3, etc
      var imagen = foto[i];//ubico la info dentro de la matriz
      var titular = titulo[i];//ubico la info dentro de la matriz
      var descripcion =  explicacion[i];//ubico la info dentro de la matriz

      btn.gotoAndPlay(16);
      //hasta aquí el bucle funciona bien lo probé con trace

      btn.onRelease = function() {
              //aquí ya no funciona, solamente me entrega el último valor.
      contenedor.muestraFoto(imagen);
      titulotxt.htmlText = titular;
      explica.htmlText = descripcion;
      }
}

Por naitsirk

1 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 16 May 2007 01:55 pm
Fíjate bien en mí código, o haz el ejemplo como te dije para verlo mejor. A cada botón le asignas una variable (que yo llamé textoQueQuieroMostrar) y en el evento onRelease haces referencia a ella con this.variable. Así no te saldrá el último valor.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 May 2007 06:21 pm
Gracias...
me funcionó....! :lol:

Por naitsirk

1 de clabLevel



Genero:Masculino  

firefox

 

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