Necesito ayuda con variables
Buenos dias tengo el siguiente codigo para generar un menu c on unas variables string externas:
<code>
Menu0="Icon1,Menu de ejemplo 1,edit,C:\AUTOEXEC.BAT,no"
Menu1="Icon2,Menu de ejemplo 2,msgbox,Se ha presionado el menu 2,si,foto_1,foto_2,foto_3"
Menu2="Icon3,Menu de ejemplo 3,msgbox,Se ha presionado el menu 3,no"
Menu3="Icon4,Menu de ejemplo 4,msgbox,Se ha presionado el menu 4,si,foto_7,foto_8,foto_9"
Menu4="Icon5,Menu de ejemplo 5,msgbox,Se ha presionado el menu 5,si,foto_10,foto_11,foto_12"
Menu5="Icon6,Menu de ejemplo 6,msgbox,Se ha presionado el menu 6,si,foto_2,foto_7,foto_1"
Nombre_variables_1 = "Menu";
Numero_botones = 5
links = new Array();
botones = new Array();
for (i = 0; i < Numero_botones; i++){
menu_coje = eval(Nombre_variables_1+[i+1]);
botones.push(menu_coje);
links[i]= botones[i].split(",");
//trace(botones[i]);
trace(links[i][2]);
trace(menu_coje);
}</code>
Mi problema que las variables no se encuentran en ese nivel, sino en _root y no soy capaz de engancharlas en ese bucle. La idea seria algo asi:
<code>
// Estas 6 var estan en root
Menu0="Icon1,Menu de ejemplo 1,edit,C:\AUTOEXEC.BAT,no"
Menu1="Icon2,Menu de ejemplo 2,msgbox,Se ha presionado el menu 2,si,foto_1,foto_2,foto_3"
Menu2="Icon3,Menu de ejemplo 3,msgbox,Se ha presionado el menu 3,no"
Menu3="Icon4,Menu de ejemplo 4,msgbox,Se ha presionado el menu 4,si,foto_7,foto_8,foto_9"
Menu4="Icon5,Menu de ejemplo 5,msgbox,Se ha presionado el menu 5,si,foto_10,foto_11,foto_12"
Menu5="Icon6,Menu de ejemplo 6,msgbox,Se ha presionado el menu 6,si,foto_2,foto_7,foto_1"
Nombre_variables_1 = "Menu";
Numero_botones = 5
links = new Array();
botones = new Array();
for (i = 0; i < Numero_botones; i++){
menu_coje = _root.[Nombre_variables_1+[i+1]];
botones.push(menu_coje);
links[i]= botones[i].split(",");
//trace(botones[i]);
trace(links[i][2]);
trace(menu_coje);
}</code>
Prodriais echarme una mano con ello porfavor, llevo dandole ya muchas vueltas y no soy capaz.
Muchas gracias a todos de antemano.
Un saludo.
lukassnow
Mil gracias tio, te lo agradezco muchisimo, llevaba horas dandole vueltas y se me habia pasado el tema de cambiar los dos [] por los () en el i+1, esta es la buena:
<code>menu_coje = _root[Nombre_variables_1+(i+1)]; </code>
Gracias.
Un saludo.
elsuricatorojo
Sin mirar en profundidad el código veo que esta línea tiene mal la sintaxis:
<code>menu_coje = _root.[Nombre_variables_1+[i+1]]; </code>
Debería ser así (si es que he entendido bien cual era la intención):
<code>menu_coje = _root[Nombre_variables_1+(i+1)]; </code>
Le he quitado el "." despues de _root y he cambiado los "corchetes" por parentesis.
Cuando utilizas la técnica de utilizar corchetes en vez de eval, debe desaparecer el punto a la izquierda del "[ ]"y permanece el punto de la derecha si lo hubiese.
Lo que va dentro de los corchetes es la construcción de un String y para contruir String, que yo sepa no se utilizan cochetes sino parentesis. Los corchetes son para atacar un determinado elemento de un array:
<code>miArray[0]</code>
O para atacar una parametro dentro de un objeto:
<code>var foo="nombre"
miObjeto[foo]="Antonio"</code>
Pero "+[loquesea]" no lo he visto nunca