http://www.cristalab.com/tutoriales/precargas-swf-y-jpg--en-flash-con-moviecliploader-c15l/
Bueno, lo que me pasa es lo siguiente, he visto que en muchos sitios desarrollados en flash, cada vez que cargan una seccion y luego se van a otra, cuando vuelven a la anterior, se la muestran al instante y no la vuelve a cargar, lo que me pasa a mi es lo siguiente:
Este es el codigo de freddie:
Código ActionScript :
//DECLARACIÓN DE VARIABLES var precargador_mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); //Esto escondera el menu del click derecho Stage.showMenu = false; //CREADOR DEL LISTENER //Las funciones de los MovieClips son tres esenciales; /* onLoadStart (Ejecutada cuando inicia la precarga) onLoadProgress (Ejecutada cada vez que avanza la descarga) onLoadComplete (Ejecutada cuando la precarga termina) */ //Función onLoadStart, asignada al objeto Listener que luego agregaremos a //nuestro MovieClipLoader El parametro "target_mc" es una referencia al //MovieClip de destino listener.onLoadStart = function(target_mc) { trace("Iniciando"); //Colocamos la barra de precarga en el escenario con el nombre "barra_mc" _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth()); //Ubicamos la barra en la mitad del escenario _root.barra_mc._y = Stage.height/2; _root.barra_mc._x = Stage.width/2; //Y nuestra barra esta lista para moverse en el evento onLoadProgress }; //Función onLoadProgress, es la función clave, tiene tres parametros //target_mc, quees igual que el anterior, loadedBytes, que nos dice la //cantidad de bytes cargados y totalBytes que nos dice la cantidad total //de bytes de la pelicula en proceso de descarga listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) { trace("En progreso"); //Declaramos la variable de calculo de porcentaje var porcentaje:Number; //Calculamos el porcentaje con las variables que le llegan por parametro a la función porcentaje = Math.round((loadedBytes*100)/totalBytes); //Vamos al frame del porcentaje en nuestra barra de carga _root.barra_mc.gotoAndStop(porcentaje); //Ahora escondemos el objeto de la precarga y lo frenamos target_mc._visible = false; target_mc.stop(); }; //Función onLoadComplete listener.onLoadComplete = function(target_mc) { trace("ya"); //Como ya cargo completo, entonces quitamos la barra _root.barra_mc.removeMovieClip(); //Y mostramos el objeto target_mc._visible = true; target_mc.play(); }; //ASIGNACIÓN DEL LISTENER AL MOVIECLIPLOADER //Ahora, todas las funciones que declaramos seran asignadas a //nuestro MovieClipLoader "precargador_mcl" precargador_mcl.addListener(listener); //CODIGO DEL BOTON //Esta variable nos servira para saltarnos el cache y asi siempre //ver el efecto de precarga, quitala o dejala en blanco si no //lo deseas var nochache:String; //En el evento onRelease del boton . . . cargar_btn.onRelease = function() { nocache = "?nocaching="+random(65000); //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo //"pelicula.swf" y que lo muestre en "carga_mc" :D precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc); };
El cual entiendo que manteniendolo asi, solo me permitiria cargar un .swf
Código ActionScript :
//En el evento onRelease del boton . . . cargar_btn.onRelease = function() { nocache = "?nocaching="+random(65000); //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo //"pelicula.swf" y que lo muestre en "carga_mc" :D precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc); };
Ahora bien, en mi sitio tengo varios botones instanciados con diferentes nombres (BOTON_1_btn,BOTON_2_btn,etc...) que cargan distintos .swf, entonces lo trate de solucionar asi:
Código ActionScript :
//En el evento onRelease del boton . . . //BOTONES CENTRALES //BOTON 1 BOTON_1_btn.onRelease = function() { nocache = "?nocaching="+random(65000); //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo //"pelicula.swf" y que lo muestre en "carga_mc" :D precargador_mcl.loadClip("Pelicula_1.swf"+nocache, caja_mc); }; //BOTON 2 BOTON_2_btn.onRelease = function() { nocache = "?nocaching="+random(65000); //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo //"pelicula.swf" y que lo muestre en "carga_mc" :D precargador_mcl.loadClip("Pelicula_2.swf"+nocache, caja_mc); };
pero de esta forma, cada vez que realizo una carga, voy a otra seccion realizando otra carga, y luego quiero volver a la seccion anterior, me realiza nuevamente la carga que ya realizo anteriormente. y estoy en el sitio todo el tiempo cargando secciones cuando ya las tendria que haber cargado anteriormente como si lo hace en muchos otros sitios.
espero su ayuda...
y gracias Freedie por el tutorial.