Precargas de archivos externos con Actionscript 2: MovieClipLoader
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
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)); |