Comunidad de diseño web y desarrollo en internet online

Peleando con los nombres dinamicos de variable (RESUELTO)

Citar            
MensajeEscrito el 21 Ene 2006 02:10 pm
Aunque les he ganado el primer asalto gracias a la ayuda de la gente de este foro.

Resultado del primer asalto:

Código :

for (var i=0;i<ciudad_lv.numciudades;i++)
     { 
         colorciudad=new Color(ciudad_lv["ciudad"+i]+"_tapa");
         colorciudad.setRGB(0x78b2e4);

     }


el codigo anterior coge de un documento de texto las variables ciudad0, ciudad1, ciudad2..., y a su contenido (ALAVA,ALICANTE,ALMERIA...)le añade el texto "_tapa" dando como resultado ALAVA_tapa, ALICANTE_tapa,ALMERIA_tapa... que son el nombre de los movieclips a los que les cambio el color dinamicamente, en vez de escribir el codigo para cada uno. Minipunto para el noob akhasis.

Mi problema viene cuando intento hacer lo mismo para habilitar/deshabilitar unos botones. Lo he intentado de todas las maneras que se me ocurren:

-> ciudad_lv["ciudad"+i]+"_btn".enabled=false;

->[ciudad_lv["ciudad"+i]+"_btn"].enabled=false;

->[ciudad_lv["ciudad"+i]+"_btn"]enabled=false;

->(ciudad_lv["ciudad"+i]+"_btn")enabled=false;

pero siempre me da mensajes de error. algun alma caritativa que sea capaz de resolverme la duda?

Muchas gracias

Por akhasis

75 de clabLevel



 



Ultima edición por akhasis el 23 Ene 2006 10:36 am, editado 1 vez

firefox
Citar            
MensajeEscrito el 21 Ene 2006 04:29 pm
+"_btn" va dentro del corchete :wink:

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 21 Ene 2006 04:48 pm
gracias por tu respuesta zah, pero con el +"_btn" dentro del corchete tampoco funciona. lo que hago con

Código :

ciudad_lv["ciudad"+i]
es coger una por una las variables que empiezan por "ciudad" y terminan en un numero: ciudad0=ALAVA, ciudad1=ALBACETE, ciudad2=ALICANTE, ciudad3=ALMERIA... y hasta ahi me funciona.

Lo que quiero ahora es habilitar los botones ALAVA_btn, ALBACETE_btn, ALICANTE_btn, ALMERIA_btn, mediante un codigo parecido al que he utilizado para cambiar de color las movie clips.

De hecho si escribo en un campo de texto dinámico

Código :

ciudad_lv["ciudad"+i]+"_btn"
funciona perfectamente, me muestra los nombres de las ciudades con el añadido "_btn". El fallo da cuando lo utilizo como nombre del boton.

Gracias de nuevo por echarle un vistazo a mi codigo.

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Ene 2006 06:43 pm
mmm uqe extraño esto debe funcionar

Código :

ciudad_lv["ciudad"+ i +"_btn"].enabled=false; 


saludos :D

Por flasher

Invitado



 

msie
Citar            
MensajeEscrito el 21 Ene 2006 06:45 pm
colorciudad=new Color(ciudad_lv[ciudad+"_tapa"]);

entendemos que ciudad es una variable no?

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 21 Ene 2006 09:39 pm
gracias por vuestras respuestas, pero no me han resuelto todavia mi problema, que intentare explicar con mas claridad.

Sigo dandole vueltas a esto, primero porque lo necesito, pero a estas alturas ya es mas fuerte la parte "personal", ya lo quiero acabar asi.

Pasemos a la aclaracion del problema:

Es importante distinguir entre el nombre de las variables ("ciudad0", "ciudad1"), su contenido ("ALAVA", "ALICANTE"), las movieclips a las que cambio de color ("ALAVA_tapa", "ALICANTE_tapa") y los botones que quiero activar y desactivar ("ALAVA_btn", "ALICANTE_btn").

las variables, que se llaman "ciudad0","ciudad1"... las cargo desde un archivo de texto cuyo contenido es este:

&numciudades=49&ciudad0=BADAJOZ&ciudad1=AVILA&ciudad2=ASTURIAS&ciudad3=ALICANTE...

y sigue asi hasta &ciudad48. Entonces yo lo que hago con el bucle es "crear" el nombre de las variables, y a la cadena que contienen, les añado la coletilla "_tapa", con lo que resulta ALAVA_tapa, ALBACETE_tapa, ALICANTE_tapa, ALMERIA_tapa... y asi hasta 69 nombres de provincia terminados en "_tapa".

Código :

ciudad_lv["ciudad"+i]  //evalua el contenido de ciudad0, ciudad1, ciudad2, segun va aumentando el contador del bucle. Ejemplo, ciudad0=ALAVA


CODE]ciudad_lv["ciudad"+i]+"_tapa" //al contenido de las variables le concatena "_tapa" Ejemplo, ALAVA_tapa (por esta razon on funciona tu codigo, flasher[/CODE]

Todo esto lo hago porque tengo 69 movieclips con los nombres ALAVA_tapa, ALBACETE_tapa, etc. y asi puedo cambiarle el color directamente a todos en el bucle, y lo que es mejor, cuando cambie en la base de datos el estado de la provincia, al recargar el swf, actualizara automaticamente los colores. Pero todo lo anterior ya me funciona, quiero ahora hacer que las ciudades que aparecen en el archivo de texto, sus respectivos botones se deshabiliten. Y esto es lo que intento de la siguiente manera:

Código :

for (var i=0;i<ciudad_lv.numciudades;i++)
     {
         colorciudad=new Color(ciudad_lv["ciudad"+i]+"_tapa"); 
         colorciudad.setRGB(0x78b2e4);//hasta aqui ya funciona
   [ciudad_lv["ciudad"+i]+"_btn"]enabled=false;//esto es lo que no soy capaz de sacar

     }


con el codigo que dices, flasher, se intentaria cargar el contenido de la variable ALAVA0_btn desde el archivo de texto, variable que no existe.

Espero haberme explicado bien y siento haber puesto este tochazo, pero ademas de que lo necesito, ya es algo personal, como dije, y nadie sabe contestarlo en ningun foro ni en chats ni nada.

Muchas gracias de nuevo.

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Ene 2006 10:39 pm
Prueba esto:

Código :

 ciudad_lv[["ciudad"+i]+"_btn].enabled=false 

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 23 Ene 2006 10:38 am

Código :

for (var i=0;i<ciudad_lv.numciudades;i++)
     {
         colorciudad=new Color(ciudad_lv["ciudad"+i]+"_tapa");
        colorciudad.setRGB(0x78b2e4);
       ciudadActual=eval (ciudad_lv["ciudad"+i]+"_btn");
       ciudadActual.enabled=false;
     }


la solucion estaba en la funcion "eval".

gracias por vuestra ayuda

Por akhasis

75 de clabLevel



 

firefox

 

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