Tengo un inconveniente menor con un proyecto.
El proyecto hace lo siguiente:
1. Carga el listado de imagenes contenido en un XML
2. Crea dinamicamente 35 MC en los cuales cargan dinamicamente imagenes (del XML) mediante loads (y listeners), y escucha los eventos de cuando se le acerca y aleja el raton haciendo que aparezca y desaparezca el MC seleccionado usando Tweens.
En la biblioteca se creo un MC que a su ves contiene otro con el nombre img_mc, donde se carga la imagen.
La parte que no he logrado que funcione es que cuando el MC ha sido seleccionado y termina de desaparecer cargue en ese mismo MC otra imagen al azar, usando el Listener y el load que previamente se le fue asignado.
He aqui el código:
Código ActionScript :
import mx.transitions.Tween; import mx.transitions.easing.*; /* El XMl */ var Mi_XML:XML = new XML(); Mi_XML.ignoreWhite = true; Mi_XML.onLoad = function(success:Boolean) { if (success) { elXMlMenu(); } else { trace("no Jalo la onda jiñor"); } }; var menuDat:Array = new Array(); function elXMlMenu():Void{ var datos:Array = Mi_XML.firstChild.childNodes for(var i=0; i<datos.length;i++) menuDat.push(datos[i].attributes.src); creaMenu(); } Mi_XML.load("imagenes/galeria.xml"); /* fin del XML */ /*El menu */ // Contenedor Menu this.createEmptyMovieClip("contMenu_mc", 1); // Cuadros menu creaMenu = function():Void { var cuadro_mc:MovieClip; var numC:Number = 35; var multiplo:Number; var spciox:Number = 0; var spcioy:Number = 0; var cont:Number; var imgCarga:String; var cuantascol:Number = 7; for(var i:Number = 0; i < numC; i++){ contMenu_mc.attachMovie("imgc", "imgc" + i + "_mc", i); cuadro_mc = contMenu_mc["imgc" + i + "_mc"]; cuadro_mc._x = spciox * 144; cuadro_mc._y = spcioy; spciox += 1; cont = i + 1; multiplo = cont % cuantascol; if(multiplo == 0){ spciox = 0; spcioy += 144; } cuadro_mc.onRollOver = turnOn; cuadro_mc.onRollOut = cuadro_mc.onReleaseOutside = turnOff; this["mi_mcl" + i] = new MovieClipLoader(); this["mi_mclL" + i] = new Object(); this["mi_mclL"+ i].onLoadInit = function(el_mc:MovieClip){ //trace("se cargo:" + el_mc); picSlideTween = new Tween(el_mc, "_alpha", Regular.easeIn, 0, 100, 0.8, true); picSlideTween.onMotionFinished = function() { new Tween(el_mc, "_alpha", Regular.easeIn, 100, 0, 0.8, true); } } this["mi_mclL"+ i].onLoadStart = function(mc:MovieClip){ //trace("ahora si mi chavo yia se esta cargando:" + mc); mc._alpha = 0; } this["mi_mcl"+ i].addListener(this["mi_mclL"+ i]); this["mi_mcl"+ i].loadClip(menuDat[i], cuadro_mc.img_mc); } reacomoda(); } /* Redimencionar */ var stageL:Object = new Object(); stageL.onResize = function(){ reacomoda(); } Stage.addListener(stageL); reacomoda = function():Void { contMenu_mc._x = (Stage.width - contMenu_mc._width) / 2; contMenu_mc._y = (Stage.height - contMenu_mc._height) / 2; } function ruleta(min:Number, max:Number):Number { var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } function turnOn() { new Tween(this.img_mc, "_alpha", Regular.easeIn, 0, 100, 0.8, true); } function turnOff(){ imgAzar = ruleta(0, menuDat.length -1); este = this.img_mc; apagar = new Tween(this.img_mc, "_alpha", Regular.easeOut, 100, 0, 0.8, true); apagar.onMotionFinished = function() { this["mi_mcl"].loadClip(menuDat[imgAzar], este) } }
Cada MC imgc0_mc ... imgc34_mc tiene su MovieClipLoader mi_mcl0 .... mi_mcl34, así que en la función turnOff() al terminar el Tween invoco el siguiente código this["mi_mcl"].loadClip(menuDat[imgAzar], este), como saber cual MovieClipLoader le corresponde al MC que es invocado y como cargar en este mismo una nueva imagen?
Salu2 y Gracias =D