Si que lo tiene. En realidad el xml lo lee perfectamente. Voy a explicar lo que quiero hacer y lo que tengo conseguido.
Es una galeria fotográfica, antes tenía 2 xmls diferentes, uno para el menu y otro para las fotos, y me funciona perfectamente. El problema es que el cliente pueda agrandar el menu, por lo tanto tendría que crear un nuevo xml y un nuevo fla.
Lo que quiero conseguir es que en un mismo swf segun clique el usuario un botón u otro anteriormente creado por el cliente a su gusto, se cargue un nodo con sus fotos u otro, es decir, si el usuario clica en retrato, se cargue solo el nodo retrato.
Pongo el código completo por si me pueden ayudar.
Código :
//--Definir variables inciales --//
var lista_xml:XML = new XML();
lista_xml.ignoreWhite = true;
var cargador_mcl:MovieClipLoader = new MovieClipLoader();
cargador_mcl.addListener(this);
var img_w:Number = 400;//Ancho de las imagenes
var img_h:Number = 500;//Alto de las imagenes
var img_n:Number = 3;//Numero de imagenes que se mostraran
var img_s:Number = 115;//Separacion entre las imagenes
var gal_x:Number = -178.3;//Posicion en X de la galeria
var gal_y:Number = 117.0;//Posicion en Y de la galeria
//-- Crear la galeria --//
var galeria:MovieClip = this.createEmptyMovieClip("galeria", 120);
galeria.createEmptyMovieClip("miniaturas", 0);
galeria.miniaturas.setMask( galeria.mascara );
galeria._x = this.gal_x;
galeria._y = this.gal_y;
//-- Carga XML --//
lista_xml.onLoad = function( ok:Boolean )
{
if( ok )//Si se cargo correctamente
{
crearImagenes();
}
else trace("No se pudo cargar el XML");
}
lista_xml.load("fotos.xml");
//-- Crear las imagenes --//
function crearImagenes( Void ):Void
{
//Variables auxiliares
var aux:MovieClip;
var img_aux:String;
var url_aux:String;
var opciones:Array = lista_xml.firstChild.childNodes;
for(i = 0; i < opciones.length; i++) { // Comienza a repetirse esta parte del código, tantas veces como elementos hay en el XML
_root.menu.menu2.mcBoton.attachMovie("menubotonclip", "boton"+i, _root.menu.menu2.mcBoton.getNextHighestDepth()); // Creamos un MC copiado del original, tal como explicamos anteriormente
_root.menu.menu2.mcBoton["boton"+i]._x = 150; // Su posición horizontal sera a 50 px
_root.menu.menu2.mcBoton["boton"+i]._y = 60 + (i * 25); // Su posición vertical va cambiando como explicamos hace un momento
_root.menu.menu2.mcBoton["boton"+i].texto = opciones[i]; // Le asignamos el correspondiente texto al botón
_root.menu.menu2.mcBoton["boton"+i].linkurl = opciones[i]; // Le asignamos el correspondiente Link a botón
_root.menu.menu2.mcBoton["boton"+i].linkurl = i
_root.menu.menu2.mcBoton["boton"+i].onRelease = function(){
cargaXML(_root.menu.menu2.mcBoton["boton"+i].linkurl); // tienes que crear una funcion que lea la estructura XML (yo la he llamado cargaXML)
}
}
for( var i:Number = 0, l:Number = lista_xml.firstChild.childNodes[1].childNodes.length; i < l; i++)
{
aux = this.crearImagen( i );
url_aux = lista_xml.firstChild.childNodes[0].childNodes[i].attributes.url_xml;
img_aux = lista_xml.firstChild.childNodes[0].childNodes[i].attributes.nom_xml;
//Aqui se indica que al presionar el boton se carge la url
if( url_aux != undefined && url_aux != "" )
{
aux.boton_mc.url = url_aux;
aux.boton_mc.onRelease = function( Void )
{
getURL( this.url );
};
}
cargador_mcl.loadClip( img_aux, aux.thumb_mc );
}
}
function crearImagen( index:Number ):MovieClip
{
//Clips
var clip:MovieClip = this.galeria.miniaturas.createEmptyMovieClip("mc_" + index, index);
clip.createEmptyMovieClip("boton_mc", 1)
clip.createEmptyMovieClip("thumb_mc", 0)
//Posicion
clip.index = i;
clip._y = (this.img_w + this.img_s) * index;
//Fondo transparente del boton
clip.boton_mc.beginFill(0,0);
clip.boton_mc.moveTo(0,0);
clip.boton_mc.lineTo(this.img_w,0);
clip.boton_mc.lineTo(this.img_w, this.img_h);
clip.boton_mc.lineTo(0, this.img_h);
clip.boton_mc.endFill();
return clip;
}
//-- Eventos del Cargador --//
function onLoadInit( target:MovieClip )
{
target._width = this.img_w;
target._height = this.img_h;
}