Precargas múltiples de SWF y JPG simultanea en un sólo preload
Este código permite crear una precarga única para varios archivos (swf o jpg) externos. Es decir sólo aparecerá una barra de preload mientras se cargan estos archivos y una vez esten todos cargados se mostrarán a la vez.
- var precarga:MovieClipLoader = new MovieClipLoader();
- precarga.addListener(this);
- function onLoadStart(clip:MovieClip)
- {
- clip._visible = false;
- clip.stop();
- }
- function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
- {
- porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
- porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
- preload.gotoAndStop(porcentajeTotal);
- preload.cargando.text = "Loading: " + list_nombres[cargando];
- }
- function onLoadInit(clip:MovieClip)
- {
- cargando++;
- cargaMultiple();
- }
- //--------------------------
- function cargaMultiple(queX:Number, queY:Number)
- {
- if (!cargando) {
- cargando = 0;
- this.attachMovie("preload", "preload", this.getNextHighestDepth());
- preload._x = queX;
- preload._y = queY;
- }
- if (cargando < list_swfs.length) {
- precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
- } else {
- for (i = 0; i < list_swfs.length; i++) {
- this[list_contenedor[i]]._visible = true;
- this[list_contenedor[i]].play();
- }
- removeMovieClip(preload);
- }
- }
- [/as]</div>
- Para realizar la carga de archivos crearemos una serie de Arrays:
- <div id=codigo>[as]//listado de las rutas de los archivos externos a cargar
- var list_swfs:Array = ["peli1.swf", "peli2.swf", "01.jpg", "02.jpg", "03.jpg", "04.jpg"];
- //listado de los MovieClips vacíos donde cargar los archivos externos
- var list_contenedor:Array = ["menu1", "menu2", "fot1", "fot2", "fot3", "fot4"];
- //listado de títulos de los archivos externos
- var list_nombres:Array = ["Menu superior", "Menu Inquierdo", "Foto 1/4", "Foto 2/4", "Foto 3/4", "Foto 4/4"];
- //se inicia la carga. Debemos indicar la posición X y Y del MovieClip del preload
- cargaMultiple(50, 50);
Para más información pueden ver el tutorial que escribí para Cristalab. 😉
Compártelo:
Visto 16.318 veces
como puedo recargar un swf y un mp3 al mismo tiempo??
muy bueno el tuto, pero necesito que los archivos externos no se carguen al mismo tiempo tengo un intro contactos servicios galeria en archivos independientes necesito que se carguen
@Daniel Calonga: En el array de archivos a cargar pon la url de los dos archivos y listo 😉
@Juan Carlos Iñaguazo: Si no quieres cargarlos al mismo tiempo, si no cada vez que entras a la sección, necesitas un preload simple. A menos de que quieras cargarlo todo al principio para tenerlo en caché (pero no es recomendable).
Buenas, estoy probando el codigo, porque quiero cargar varios swf para que una vez cargados sea rapida la navegacion del sitio, que es todo flash. No me aparece la barra de carga, ni se puede direccionar una vez terminada la carga?
Buenas,tengo hecho un slide en donde pasan fotos y entre foto y foto hice una transición de fusión entre foto y foto. El problema es que las fotos son jpg externos y mi preload carga solo el swf y cuando arranca la animación, empieza a correr la palicula pero no sellegan a cargar los jpg… ¿me estoy explicando bien?
lo que necesito es que el preload cargue el SWF y ademas los jpg externos que se van a leer en la pelicula y despues arranque el slide. ¿me sirve este preload o tengo que modificarle algo?? Gracias de antemano!
Hay alguna forma de que se precarguen los contenedores en diferentes Fotogramas?
mi pregunta es como meto ese codigo en html, me explico, como seria la sintaxis para que corra en html?
Cool! esta padrisimo… me sirve
Mmmm.. le hice algunos arreglos 😉
var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
// tamaños…
clip.W = preload.W;
clip.H = preload.H;
trace(” W: “+clip.W+”, H: “+clip.H+” | clip: “+clip);
clip._visible = false;
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
preload._x = clip._x + clip.W/2;;
preload._y = clip._y + clip.H/2;;
preload.carga_txt.text = list_nombres[cargando] + ” [” + porcentaje + “%]”;
}
function onLoadInit(clip:MovieClip)
{
//
clip._visible = true;
clip._width = clip.W;
clip._height = clip.H;
//
cargando++;
cargaMultiple();
}
//————————–
function cargaMultiple(queX:Number, queY:Number)
{
if (!cargando) {
cargando = 0;
this.attachMovie(“preloader”, “preload”, this.getNextHighestDepth());
preload._x = queX;
preload._y = queY;
}
if (cargando <list_swfs.length) {
preload.W = this[list_contenedor[cargando]]._width;
preload.H = this[list_contenedor[cargando]]._height;
precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
} else {
removeMovieClip(preload);
}
}
//listado de las rutas de los archivos externos a cargar
var list_swfs:Array = ["../../_insumos/images1.jpg", "../../_insumos/images2.jpg", "../../_insumos/images3.jpg"];
//listado de los MovieClips vacíos donde cargar los archivos externos
var list_contenedor:Array = ["thumb1", "thumb2", "thumb3"];
//listado de títulos de los archivos externos
var list_nombres:Array = ["foto 1", "imagen 2", "pic 3/3"];
//se inicia la carga. Debemos indicar la posición X y Y del MovieClip del preload
cargaMultiple(50, 50);
Tengo una pregunta sobre el preloader….
Si todos los archivos externos los cargo en un movieclip que se llama “CARGAS”
y cuando hago la llamada a ellos, el movieclip de carga es distinto…. utiliza el archivo externo ya precargado en el movie clip “CARGAS” ?
Como en este caso: loadMovie(“05.swf”, placeholder_mc12);
Ahi le estoy diciendo que lo cargue en un movieclip vacio que se llama paceholder_mc12.. pero en el preloader lo carqué en “CARGAS” …
Muchas gracias y felicidades el preloader funciona excelente, solo tengo esa duda… saludos