Clase para hacer precargas en Actionscript 3.0
Esta es una clase que estoy utilizando bastante en mis últimos trabajos. Es bastante sencilla, pero se puede modificar fácilmente para añadir otros comportamientos. La clase tiene las siguientes function públicas:
-Función constructora: recibe como parámetro el clip que se va a mostrar durante la precarga. La clase está preparada para que este clip tenga un campo de texto llamado Texto_txt, que será donde se muestre el progreso de carga, y una animación de 100 fotogramas.
-Función cargar: recibe como parametro una url (String) y el clip donde vamos a cargar el contenido de la url (MovieClip).
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 |
package com.esedeerre{ import flash.display.*; import flash.events.*; import flash.net.URLRequest; public class Cargador extends Sprite{ var cargador:Loader var destino:MovieClip; var peticion:URLRequest; var loading:MovieClip; public function Cargador(clipLoad):void{ loading=clipLoad; loading.visible = false; } public function cargar(url:String,donde:MovieClip):void{ loading.visible = true; destino = donde; vaciarDestino(); cargador = new Loader(); ponerListeners(cargador.contentLoaderInfo); peticion = new URLRequest(url); cargador.load(peticion); } private function vaciarDestino():void{ for (var i:uint=0; i < destino.numChildren; i++){ var child = destino.getChildAt(i); destino.removeChild(child); } } private function ponerListeners(dispatcher:IEventDispatcher):void{ dispatcher.addEventListener(Event.COMPLETE,cargaCompletada); dispatcher.addEventListener(ProgressEvent.PROGRESS, progresoCarga); } private function cargaCompletada(e:Event):void{ loading.visible = false;; destino.addChild(e.target.content); } private function progresoCarga(e:ProgressEvent):void{ loading.Texto_txt.text = e.bytesLoaded + " / " + e.bytesTotal; loading.gotoAndStop(Math.floor((e.bytesLoaded/e.bytesTotal)*100)); } } } |