Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/07/2006, 21:55
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas,

Para reemplazar los eval's con la notación de arrays (corchetes) seguí el siguiente modelo:

Código:
eval("this.variable"+i);
cambia por

Código:
this["variable"+i];
Con eso, debería funcionar (siempre y cuando la referencia de this sea correcta, pero si con eval el this está bien, con los corchetes va a andar);

La clave está en que lo que está adentro de los corchetes se evalúa, sin necesidad de usar la función eval.

Para que tengas en cuenta (te puede servir en otros casos):

Notación con puntos:

Código:
this.tipoNoticia  
// acá te referís a la variable tipoNoticia, dentro de this
Código:
var tipoNoticia = "policiales";
this[tipoNoticia];  
/** 
acá primero reemplaza la variable tipoNoticia por su valor, que es el string
"policiales", y después evalúa, por lo que termina siendo lo mismo que poner:
this.policiales.
Como lo que está entre corchetes es un string/cadena que se evalúa, ahí adentro podés 
concatenarle un contador como en tu ejemplo (o algún otro string o expresión que se puede
convertir a string
*/
En tu ejemplo, sería:

Código:
var mytotal = this.total;
for (i=0; i<=mytotal-1; i++) {
//	pic_arr.push(eval("this.foto" add i));
	pic_arr.push(this["foto"+i]);
//	link_arr.push("noticias/vernoticia.php?notid="+eval("this.id_noticia" add i));
	link_arr.push("noticias/vernoticia.php?notid="+this["id_noticia"+i]);
//	noticia_arr.push(eval("this.news" add i));
	noticia_arr.push(this["news"+i]);
}
Una observación: "add" en Flash 8 me tira error y hasta donde sé, está "depreciado", te convendría usar "+".


Suerte
Califa