Clase para hacer precargas en Actionscript 3.0

Clase para hacer precargas en Actionscript 3.0

Etiquetas: Loader MovieClip URLRequest

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. package com.esedeerre{
  2. 	import flash.display.*;
  3. 	import flash.events.*;
  4. 	import flash.net.URLRequest;
  5. 	public class Cargador extends Sprite{
  6. 		var cargador:Loader
  7. 		var destino:MovieClip;
  8. 		var peticion:URLRequest;
  9. 		var loading:MovieClip;
  10. 		public function Cargador(clipLoad):void{
  11. 			loading=clipLoad;
  12. 			loading.visible = false;
  13. 		}
  14. 		public function cargar(url:String,donde:MovieClip):void{
  15. 			loading.visible = true;
  16. 			destino = donde;
  17. 			vaciarDestino();
  18. 			cargador = new Loader();
  19. 			ponerListeners(cargador.contentLoaderInfo);
  20. 			peticion = new URLRequest(url);
  21. 			cargador.load(peticion);
  22.  
  23. 		}
  24. 		private function vaciarDestino():void{
  25. 			for (var i:uint=0; i < destino.numChildren; i++){
  26. 				var child = destino.getChildAt(i);
  27. 				destino.removeChild(child);
  28. 			}
  29. 		}
  30. 		private function ponerListeners(dispatcher:IEventDispatcher):void{
  31. 			dispatcher.addEventListener(Event.COMPLETE,cargaCompletada);
  32. 			dispatcher.addEventListener(ProgressEvent.PROGRESS, progresoCarga);
  33.  
  34. 		}
  35. 		private function cargaCompletada(e:Event):void{
  36. 			loading.visible = false;;
  37. 			destino.addChild(e.target.content);
  38. 		}
  39. 		private function progresoCarga(e:ProgressEvent):void{
  40. 			loading.Texto_txt.text = e.bytesLoaded + " / " + e.bytesTotal;
  41. 			loading.gotoAndStop(Math.floor((e.bytesLoaded/e.bytesTotal)*100));
  42. 		}
  43. 	}
  44. }
Comentarios
    • Autor
    • Manolo
    Estoy empezando con AS 3 y tus ejemplos me estan ayudando mucho, sobre todo con el tema de clases y demas. Estoy intentando usar tu Clase para hacer precargas y no me funciona, no entiendo muy bien que y donde debo tener en la pelicula .fla. ¿me podrias ayudar? ¿tienes un archivo .fla para ver el uso? Muchisimas gracias de antemano!
    • Autor
    • warmachine
    que buen aporte parcero ultimamente me eh vuelto seguidor de tu pagina realmente tienes ejemplos utiles cualquier cosa te estare molestando con mis dudas suerte!
    • Autor
    • Paul
    A mi tampoco me funciona. La página tiene muchas ayudas o tutoriales muy buenos.
    • Autor
    • esedeerre

    Buenas, para comenzar con el tema de cargas os recomiendo este tutorial:

    http://www.esedeerre.com/ejemplo/9/135/actionscript-30-ejemplo-basico-para-cargar-imagenes

    • Autor
    • Paul
    Ese funciona sin problema, y lo puedo utilizar. Este mejorado no me funciona, obviamente que es un error mío. Cargué una variable con la pelicula que quiero cargar. Al MovieClip con 100 fotogramas le deje loadin de nombre y tiene adentro un campo de texto con el nombre Texto_txt. No entiendo porque se declara el MovieClip destino. Si podés responder muchas gracias, sino gracias por este sitio que me viene desasnando mucho.
    • Autor
    • carlos
    que tal oye hice un preloader de un tutoarial pero me sale este error me puedes decir como se corrige o por que sale?, muchas gracias. TypeError: Error #1010: A term is undefined and has no properties. at shiva_fla::MainTimeline/loaderF()
    • Autor
    • Marc
    Yo cuando intento pasar mi clip a la clase me sale este error: Error #1034: Error de conversión forzada: no se puede convertir "carga.swf" en flash.display.MovieClip Podrías explicarme el por que..... gracias y saludos
    • Autor
    • esedeerre

    @Marc

    ¿Que código estás poniendo exactamente?

    • Autor
    • emilio
    buenas, amigo estoy de comienzo con esto de las clases, ya vi tus tutoriale de clases parte uno y parte 2, los entendi muy sencillos, pero estoy intentando con este y nada, esto es lo q estoy haciendo un archivo FLA llamado "index.fla" el cual tiene una clase primaria llamada "main" y dos movieclip uno llamado "clipLoad" y otro "carga_mc" ok en el main.as esta el siguiente codigo package { import flash.display.MovieClip; public class index extends MovieClip { import com.esedeerre.Cargador; public function index():void { cargar("foto.jpeg",segmento_mc); } } } me dice "1180: Call to a possibly undefined method cargar.
    • Autor
    • emilio
    buenas, amigo estoy de comienzo con esto de las clases, ya vi tus tutoriale de clases parte uno y parte 2, los entendi muy sencillos, pero estoy intentando con este y nada, esto es lo q estoy haciendo un archivo FLA llamado "index.fla" el cual tiene una clase primaria llamada "main" y dos movieclip uno llamado "clipLoad" y otro "carga_mc" ok en el main.as esta el siguiente codigo package { import flash.display.MovieClip; public class index extends MovieClip { import com.esedeerre.Cargador; public function index():void { cargar("foto.jpeg",segmento_mc); } } } me dice "1180: Call to a possibly undefined method cargar.
Dejar un comentario
Tu nombre (obligatorio):

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

Web:

Comentario: