Llevo dandole vueltas al mismo problemas varias horas. Mi pelicula carga un archivo xml, parseo los valores y los guardo en variables de la siguiente manera:
Código :
function recullXML(carregat) {
if (carregat) {
xmlNode = this.firstChild;
NomCarpeta = [];
posX = [];
posY = [];
SubCarpetes = [];
totCarpetes = xmlNode.childNodes.length;
for (i=0; i<totCarpetes; i++) {
NomCarpeta[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
posX[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
posY[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
SubCarpetes[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
}
tempoMostra = setInterval(mostraCarpetes, 1000);
} else {
trace("no ha carregat el XML");
}
}
xmlAlbum = new XML();
xmlAlbum.ignoreWhite = true;
xmlAlbum.onLoad = recullXML;
xmlAlbum.load("nom_carpetes.xml");Importo de la libreria este movieclip:
Código :
this.attachMovie("icos_carpetes", "icos_carpetes", 5);
icos_carpetes._visible=false;Una vez parseo todos los nodos, cargo la funcion:
Código :
//inicio la variable j a 0.
j = 0;
function mostraCarpetes(){
//Duplico la movie tantas vezes como nodos en el xml
if (j<=totCarpetes) {
icos_carpetes.duplicateMovieClip("icos_carpetes"+j,j+55);
//Le paso a la movie el valor de j, en la variable "id_carpeta"
eval("icos_carpetes"+j).id_carpetes=j;
eval("icos_carpetes"+j).bot_fons_carpets.onPress=function(){
//Intento imprimir la variable id_carpetas y me da undefined.
trace(eval("icos_carpetes"+j).id_carpetes);
}
//Si pongo el mismo trace fuera del boton, si que me imprime los valores:
trace(eval("icos_carpetes"+j).id_carpetes);
}
j++;
if(j==totCarpetes){
clearInterval(tempoMostra);
}
}Todo esto funciona bien. El problema que tengo y el más importante es que no consigo pasarle acciones al boton. En las acciones del botón, he puesto un trace, que tendria que imprimir el valor de "j" de ese botón, pero me da undefined.
No se se entiende el problema. Lo del xml, quizas no importa, pero es para que vean como lo estoy planteando todo.
Muchas gracias por su tiempo!
Salut!
