duda actionscript
Hola dmstk!
tengo un problema con un script y a ver si me podéis ayudar.
En la raiz tengo un array de elementos y una función que me hace attachMovies, tantos como elementos del array haya.
Las mc que creo quiero que al pinchar me digan el elemento de dicho array.
El código es este:
<code>
function iniciaFiles(){
for(i=0;i<_parent.archivos.length;i++){
attachMovie("archivo","file" + i,1*i);
with(this["file"+i]){
_x = inicio;
inicio += 19;
_y = 0;
indice = i
}
this["file"+i].onRelease = function(){
trace(_parent.archivos[indice]);
}
}
}
</code>
pues me dice undefined.
Lo jodido, es q si pongo en vez de <code>(_parent.archivos[indice])</code> pongo <code>(_parent.archivos[0]);</code> sí que me dice el elemento del array.
Creo q es pq no guardo correctamente la variable indice, para luego saber a q elemento pertenece.
¿Alguna idea?
Jimena
Pues mira, el problema principal es que al hacer esto:
with(this["file"+i]){
_x = inicio;
inicio += 19;
_y = 0;
indice = i
}
supongo que quieres declarar "indice" dentro de cada this["file" +i]; pero me da la impresión de que no es ahí donde se está guardando, prueba a añadir un trace(this) dentro del with para saber exactamente con que clip estás tratando. Si realmente se está almacenando dentro de cada "file x" prueba a llamarlo dentro del onRelease con this.indice.
turuto
lo estuve probando y el tema es que no sabe leer la variable indice
lo he modificado un poco y ahora si me funciona
pero he hecho dentro del clip archivo un boton
en el root he generado un array cualquiera:
archivos = new Array();
for (b=0; b<=10; b++) {
archivos[b] = b*10;
}
iniciaFiles();
y la funcion me ha quedado asi:
function iniciaFiles() {
for (i=0; i<archivos.length; i++) {
_root.attachMovie("archivo", "file"+i, 1*i);
with (this["file"+i]) {
_x = i*30;
inicio += 19;
_y = 0;
this["file"+i].indice = i;
boton.onRelease = function() {
trace(indice);
trace(_root.archivos[indice]);
};
}
}
}
si te vale de algo, guay
si quieres te mando el fla
sgiraldo
gracias por las respuestas.
Haciendo "banderitas" como me recordó Jimena, he encontrado que con tan solo variar:
<code>
this["file"+i].indice = i en vez de indice=i
</code>
y luego
<code>
trace(_parent.archivos[this.indice]); en vez de trace(_parent.archivos[indice]);
</code>
así funciona.