Precargas de archivos externos con Actionscript 2: MovieClipLoader

Etiquetas: MovieClipLoader onLoadInit onLoadComplete onLoadProgress

En Actionscript 2.0 podemos cargar archivos externos con loadMovie o por medio de un MovieClipLoader. loadMovie es aparentemente mas sencillo de utilizar, pero no da información de ningún tipo sobre el estado de la carga, por lo que si queremos hacer precargas deberemos usar una instancia de MovieClipLoader. Este ejemplo muestra como utilizar este tipo de objetos, y utilizar sus eventos asociados.

var url:String = "foto.jpg";
 
function Cargar(url){
 
	//Creo una instancia de moviecliploader, que va a "gestionar" la descarga
	var cargador:MovieClipLoader = new MovieClipLoader();
 
	//Creo un objeto que voy a añadir a movieClipLoader, y va a servir de "intermediario" para
	//mostrar la información asociada al cargador
	var detector:Object = new Object();
 
	//Se ejecuta durante la carga del archivo, dando información sobre los bytes cargados y totales
	detector.onLoadProgress = function(clip:MovieClip,bCargados:Number,bTotales:Number):Void{
		Porcentaje_txt.text = Math.floor(bCargados*100/bTotales) + " % cargado";
	}
 
	//Se ejecuta cuando se produce un error al cargar el archivo (la url está mal o el archivo no está disponible)
	detector.onLoadError = function(clip:MovieClip,bCargados:Number,bTotales:Number):Void{
		Porcentaje_txt.text = "El archivo no se ha podido cargar";
	}
 
	//Se ejecuta cuando se ha cargado el archivo, pero todavia no está disponible para el player
	detector.onLoadComplete = function(clip:MovieClip){
		trace("Se ha completado la descarga");
		trace("Ancho del archivo: " + clip._width); //Devuelve 0
	}
 
	/*Esta función se ejecuta cuando ya se ha cargado el archivo y está disponible para su modificación.
	Por ejemplo, si estamos cargando una foto de la que no sabemos el tamaño,y necesitamos conocerlo cuando carga,
	habrá que verlo dentro de este evento, ya que antes sus caracteristicas no estarán disponibles. 
	Por ejemplo, en el evento onLoadComplete, si hacemos un trace(clip._width), nos dará 0 en lugar del ancho del 
	archivo cargado, ya que sus carácterísticas no estén todavía disponibles para el player*/
	detector.onLoadInit = function(clip:MovieClip){
		trace("Se ha completado la descarga y ya está disponible el objeto para el player");
		trace("Ancho del archivo: " + clip._width); //Devuelve el ancho del archivo cargado
	}
 
	//Añado el objeto al cargador
	cargador.addListener(detector);
 
	//Cargo el archivo de la url en el clip que quiero por medio de la instancia de MovieClipLoader
	cargador.loadClip(url,Contenedor_mc);
 
}
 
//Programo el botón para que cargue la foto
Cargar_bt.onRelease = function(){
	//Llamo a la función que he creado. Añado "?rand=" +Math.random(10000) a la url para que no se cachee el contenido 
	// que quiero cargar. 
	Cargar(url + "?rand=" +Math.random(10000));
}
 
//Cargo la primera vez
Cargar(url + "?rand=" +Math.random(10000));

Comentarios:
hector dijo:
hola no le entiendo y no me funciono el codigo fuente saludos
hector dijo:
creo que ya lo entendi, pero tengo un problema, por ejemplo si tengo una pelicula b que quiero llamar desde aqui y esta pelicula b se coneta ph a una base de datos mysql no me carga la base de datos y si corro la pelicula b solsa si
pablo dijo:
muuy bueno, muchas gracias!!
situ dijo:
realmente me ha solucionado un problema que hace tiempo que se me planteaba, llevaba ultimamente metiendole a la cabeza i no lo conseguia. Grácias
a dijo:
no me sirve para action script 1.0 flash 6 ...
isolfholi dijo:
vitamin c circadium rhythm http://pharmacyrxworld.info/item.php?id=4956&lng=fr&cv=eu malaria pills south africa
irrercenurn dijo:
sbar presentation medical case http://pharmacyrxworld.info/item.php?id=162&lng=us&cv=us morning tea spiritual
jorge dijo:
compañero excelente tema, y me funciona si pongo en var url:String " una imagen buscada en gooogle por ejemplo". el punto es q yo tengo un video en mi pagina cargado dinamicamente y es a este q necesito q le haga el loading pero si pongo la direccion de pag no funciona, no se me podes guiar. Gracias
Script dijo:
claro que no les va a funcionar ese ejemplo si lo dejas como esta ese codigo solo funciona en un servidor pero si quieres que te funcione en flash local solo solo tienen que hacer esto: //cambien por este codigo Cargar_bt.onRelease = function(){ Cargar(url); } //Cargo la primera vez Cargar(url); Resumen: La Razon por la que no funciona a algunos es que el cache marca error en si se esta ejecutando de forma local prueven con el cambio que les que eh hecho y veras que funciona ahora bien proeven ese mismo codigo (EL ORIGINAL) en un servidor y no les dara error bueno saludos a todos cualquier pregunta hechenla Dios les bendiga.
no prescription lozol 1.5mg price dijo:
http://lozol.yolasite.com/ no prescription lozol 1.5mg price
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: