Comunidad de diseño web y desarrollo en internet online

Problema con eval

Citar            
MensajeEscrito el 25 Abr 2009 12:01 am
Hola a todos. Copié un código que me pasaron para duplicar una botonera que contenga texto dinámico. Este código contiene un eval, que en el .fla de donde lo saqué, funciona, pero si yo pego el código en mi .fla, los botones se duplican pero el texto ni siquiera aparece... supongo que el eval no está funcionando. ¿Alguien puede ayudarme? No puedo ver cuál es el problema. ¿Existe algún paso previo que se realice manualmente como para que el eval funcione?

Desde ya muchas gracias.

Les dejo el código.

Código :

_root.Cont_Texto._visible= false;
texto1="Home";
texto2="Quienes somos";
texto3="Contactenos";
texto4 ="Servicios";
tamaño= 0;
////////////////////////////////////////////////////
for (var i = 1; i < 5; i++){
   bot="Ins"+i;
   nom_bot="texto"+i;
_root.Cont_Texto.duplicateMovieClip(bot, i + 10);
_root[bot]._y = _root[bot]._y+20*i;
_root[bot].texto = eval(nom_bot);
_root[bot].Ins_Texto.autoSize = true;
}

Por Cookie

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Abr 2009 07:55 am
No es nada recomendable el uso del eval, hay mejores opciones como usar arrays, en tu caso. Tampoco es recomendable usar _root, lo mejor sera usar una secuencia de "_parent" o "this".

Código ActionScript :

_root.Cont_Texto._visible = false;
var textos:Array = new Array();
textos.push("Home");
textos.push("Quienes somos");
textos.push("Contactenos");
textos.push("Servicios");

for(var i:Number = 1; i < textos.length; i++)
{
   var aux:MovieClip = _root.Cont_Texto.duplicateMovieClip( "Ins" + i, i + 10);
   aux._y += 20 * i;
   aux.texto = textos[i];
   aux.Ins_Texto.text = textos[i]; //Mas recomendable que la sentencia anterior
   aux.Ins_Texto.autoSize = true;
}


Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 25 Abr 2009 07:57 am
wooshp, hay una correción en una parte del codigo, se me paso, quedaria asi:

Código ActionScript :

for(var i:Number = 0

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 25 Abr 2009 09:29 am
Probé el código que me pasaste... el MovieClip se duplica, pero el texto sigue sin aparecer. No sé qué estaré haciendo mal. :(
¿Qué vendría a ser ese "aux" que pusiste?
Yo lo que tenía era un MovieClip llamado Cont_Texto y dentro del mismo, un texto dinámico llamado "Ins_Texto".

¡Saludos, y gracias por responder!

Por Cookie

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Abr 2009 06:04 am
el aux, es una variable cualquiera que he llamado asu porque funcinoa como "auxiliar", ahora modificaremos las lineas y me dices que imprime en el panel de salida:

Código ActionScript :

_root.Cont_Texto._visible = false; 
var textos:Array = new Array(); 
textos.push("Home"); 
textos.push("Quienes somos"); 
textos.push("Contactenos"); 
textos.push("Servicios"); 
 
for(var i:Number = 1; i < textos.length; i++) 
{ 
   var aux:MovieClip = _root.Cont_Texto.duplicateMovieClip( "Ins" + i, i + 10); 
   aux._y += 20 * i; 
   aux.texto = textos[i]; 
   aux.Ins_Texto.text = textos[i]; //Mas recomendable que la sentencia anterior 
   trace("elemento: " + i + " = " + textos[i]);
   aux.Ins_Texto.autoSize = true; 
} 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 30 Abr 2009 08:08 pm
Bueno, perdón por la tardanza...!!
Probé lo que me dijiste, lo que aoarece en el panel de salida, es lo siguiente:

elemento: 1 = Quienes somos
elemento: 2 = Contactenos
elemento: 3 = Servicios
elemento: 1 = Quienes somos
elemento: 2 = Contactenos
elemento: 3 = Servicios
elemento: 1 = Quienes somos
elemento: 2 = Contactenos
elemento: 3 = Servicios

Por alguna razón no imprime Home :(

Saludos!!

Por Cookie

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 May 2009 07:44 am
la razon es esta:

Código ActionScript :

for(var i:Number = 0; i < textos.length; i++)  


i:Number = 0

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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