Comunidad de diseño web y desarrollo en internet online

MovieClipLoader

Citar            
MensajeEscrito el 08 Nov 2009 09:10 pm
Hola, este es mi primer post, estoy utilizando la funcion MovieClipLoader segun el tutorial de freddie que ya todos conoceran.
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. ^^

Por jgaraban

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Nov 2009 06:41 am
Hola jgaraban

Tienes que quitar las partes en las que dice nocache, que son, especialmente para el tutorial, y puedas ver bien, como funciona, así deberia quedar:

Código ActionScript :

//En el evento onRelease del boton . . .  
cargar_btn.onRelease = function() { 
   //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", caja_mc); 
};


Saluuuudos!

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 09 Nov 2009 01:38 pm

violetisha escribió:

Hola jgaraban

Tienes que quitar las partes en las que dice nocache, que son, especialmente para el tutorial, y puedas ver bien, como funciona, así deberia quedar:

Código ActionScript :

//En el evento onRelease del boton . . .  
cargar_btn.onRelease = function() { 
   //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", caja_mc); 
};


Saluuuudos!


Gracias violetisha!! ^^
Era tan sencillo, solo tenia que avisarle que guarde los datos, es decir, que no salte el cache.

Lo pruebo y te aviso

Por jgaraban

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Feb 2011 04:26 pm
Hola jgaraban, como te fue.. . solucionastes?

Por frankjoel86

4 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 May 2011 10:24 pm
Hola yo tambén estoy provando el tutorial de freddie, i tampoco me funcionava hasta que quité lo del cache, y he visto en este post que dice que solo sirve exclusive para el tutorial.
Aunque no lo tenga que utilizar me pregunto para que sirve... alguien me puede dar una respuesta senzillita ? grácias.

Por ran

6 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.