Este código lo pongo para cargar la galería con XML
Código ActionScript :
stop(); System.useCodepage = true; import mx.transitions.Tween; // -- posición donde se cargará la primera imagen var x:Number = 720; var y:Number = 200; // -- ancho y alto de la imagen más 5 pixeles de espacio var separacion_x:Number = 130; var separacion_y:Number = 100; // -- numero de columnas var num_columnas:Number = 3; var columnaActual:Number = 0; // -- creo un nuevo objeto XML var miXML:XML = new XML(); // -- ignorar espacios miXML.ignoreWhite = true; // -- cargar XML miXML.load("imagenes.xml"); // -- proceso si la carga tuvo éxito miXML.onLoad = cargarMiniaturas; //clips donde se almacenarán las imagenes var lienzoMinis:MovieClip = new MovieClip(); var minis:MovieClip = new MovieClip(); var imagen:MovieClip = new MovieClip(); var miniatura:MovieClipLoader = new MovieClipLoader(); var imagenCompleta:MovieClipLoader = new MovieClipLoader(); var escucha2:Object = new Object(); var escucha:Object = new Object(); function cargarMiniaturas (success:Boolean):Void { if (success == true) { // -- por cada nodo hijo del nodo principal... for ( var i:Number = 0; i<miXML.firstChild.childNodes.length; i++) { // -- delaro una variable que recoje el atributo del nodo (nombre de la imagen) var ruta:String = miXML.firstChild.childNodes[i].attributes.ruta; // -- creo un clip de película vacio lienzoMinis = _root.createEmptyMovieClip("mini"+i+"_mc", _root.getNextHighestDepth()); // -- indico posición x - y lienzoMinis._x = x; lienzoMinis._y = y; // -- cargo la imágen el clip vacio mostrarMiniaturas (ruta, i); // -- incremento el valor de x para la siguiente imágen x += separacion_x; // -- incremento en 1 el número de columnas columnaActual++; // -- ruptura de control, control de número de columnas if (columnaActual == num_columnas) { columnaActual = 0; x -= (separacion_x*num_columnas); y += separacion_y; } } } }; function mostrarMiniaturas (ruta:String, i:Number):Void { minis = lienzoMinis.createEmptyMovieClip("imgMini"+i+"_mc", lienzoMinis.getNextHighestDepth()); lienzoMinis.onRelease = function () { mostrarImagenes ( ruta, i ); }; miniatura.addListener(escucha); miniatura.loadClip("minis/"+ruta, minis ); escucha.onLoadInit = function (target_mc) { target_mc._alpha = 0; }; escucha.onLoadStart = function (target_mc:MovieClip) { var interpolacion:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true); }; }; function mostrarImagenes (ruta:String, i:Number):Void { imagen = _root.createEmptyMovieClip("imagen"+i+"_mc", 1 ); imagen._x = 50; imagen._y = 50; imagenCompleta.addListener(escucha2); imagenCompleta.loadClip("originales/"+ruta, imagen ); escucha2.onLoadInit = function (target_mc:MovieClip) { target_mc._alpha = 0; }; escucha2.onLoadStart = function (target_mc:MovieClip) { var interpolacion2:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true); }; };
Y en el botón que me da acceso a otra sección de la página pongo:
Código ActionScript :
var XMLAutos:XML = new XML(); on (press){ borrarImagenes(); } function borrarImagenes () : Void { cargaXML(); for ( var i = 0; i < XMLAutos.firstChild.childNodes.length; i++ ) { _root["mini"+i+"_mc"].unloadMovie(); _root["imgMini"+i+"_mc"].unloadMovie(); _root["imagen"+i+"_mc"].unloadMovie(); } }; function cargaXML () { XMLAutos.ignoreWhite = true; XMLAutos.load("imagenes.xml"); XMLAutos.onLoad = function () { borrarImagenes (); } };
Como bien lo dije antes, cargo y descargo los MovieClips sin problemas, el problema radica en que no me los vuelve a mostrar después de haberlos borrado en la galería.