Problema en ActionScript 2.0, eval con eventos en movieclips
Hola chicos, soy nuevo en el foro.
Tengo un problema con los eventos onRelease añadidos a una ristra de movieclips.
Tengo 30 movieclips nombrados i1,i2 ... i30.
Quiero asignarles una función a todos cuando se haga clic en ellos, para ello, en vez de crear 30 veces lo siguiente:
<code>function activa(cual:Number):Void {
trace(cual);
}
i1.onRelease = function() {
activa(1);
}
i2.onRelease = function() {
activa(2);
}
i3.onRelease = function() {
activa(3);
}</code>
lo he intentado hacer así:
<code>for(i=1;i<=30;i++) {
eval("i"+i).onRelease = function() {
activa(i);
}
}</code>
pero no funciona, la función "activa" me devuelve siempre el valor 31.
Agradecería cualquier ayuda o sugerencia en el plantamiento.
Muchísimas gracias.
theCoder
Tu codigo esta mal xq se queda en ultimo lugar con el valor i al terminar el for que es 31, ademas estas dentro de una funcion que pertenece al objeto y debes de referenciar a variables que tenga el propio objeto
Ademas el eval ya no se usa en AS2 se debe de usar los [ ]
El codigo por lo tanto quedaria asi
<code>
for(i=1; i <= 30; i++){
//Asignamos su i al propio objeto para disponer de el dentro del evento
this["i"+i].i = i;
//Le aplicamos el onRelease
this["i"+i].onRelease = function(){
activa(this.i);
}
}
</code>
Saludos
nauseavundo
Muchísimas gracias. Qué rapidez. Así da gusto :)