No hay manera Altrix, creo que el origen de mi problema está primero en mi ignorancia y segundo en que todo lo tengo dentro de un bucle así que ahí va el código completo:
Código :
on(Press){
var CategoriasSeleccion = "";
for(var i = 0; i < lstCategorias.length; i++){
if(lstCategorias.getItemAt(i).checked == true){
CategoriasSeleccion = CategoriasSeleccion + lstCategorias.getItemAt(i).data + ":";
}
}
var xmlElementos:XML = new XML();
xmlElementos.ignoreWhite = true;
xmlElementos.onLoad = function(exito) {
if (exito) {
var ArchivoIcono;
var ContadorCapas = 2;
var IdElemento;
var nombreElemento;
for ( var i = 0; i < xmlElementos.firstChild.childNodes[0].childNodes.length; i++ ){
ArchivoIcono = xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[2].childNodes[0].nodeValue;
trace("Icono categorias: " + ArchivoIcono);
for ( var j = 0; j < xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes.length; j++ ){
trace("Id elemento: " + xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[0].childNodes[0].nodeValue);
trace("Id elemento: " + xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[1].childNodes[0].nodeValue);
trace("Id elemento: " + xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[2].childNodes[0].nodeValue);
trace("Id elemento: " + xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[3].childNodes[0].nodeValue);
IdElemento = xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[0].childNodes[0].nodeValue;
map.Mapa.createEmptyMovieClip("P" + IdElemento , ContadorCapas);
map.Mapa["P" + IdElemento].loadMovie(ArchivoIcono);//, "GET");
map.Mapa["P" + IdElemento]._x = xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[2].childNodes[0].nodeValue;
map.Mapa["P" + IdElemento]._y = xmlElementos.firstChild.childNodes[0].childNodes[i].childNodes[3].childNodes[j].childNodes[3].childNodes[0].nodeValue;
map.Mapa["P" + IdElemento]._alpha = 75;
ContadorCapas++
nombreElemento = "P" + IdElemento;
nombreElemento = setInterval(asignarALoad, 1, map.Mapa["P" + IdElemento] )
function asignarALoad(MC:MovieClip){
if (MC.getBytesLoaded() == MC.getBytesTotal()) {
trace(IdElemento);
MC.onMouseDown = function() {
URL = this;
if(ModoCursor == "Seleccionar"){
MostrarFicha();
AmpliarInformacion();
}
}
clearInterval(nombreElemento)
}
}
}
}
}
}
xmlElementos.load("exemple2.xml");
}
Por cierto flasher, no puedo tener los iconos en la libreria del movie principal y lo de poner el nombre del boton tampoco funciona.
Además los iconos sí me los carga pero su comportamiento no.
Otra pista: si pongo el onMouseDown dentro de un map.Mapa.onEnterFrame va, pero todos los iconos tienen el mismo onMouseDown que es el del último cargado.
Una vez más gracias por vuestro tiempo.