Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/07/2010, 15:38
evo_it
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Aquí te dejo un ejemplo explicado y comentado para que empieces, no te asustes, hay más comentarios que líneas de código:


Código actionscript:
Ver original
  1. //En este ejemplo lo que se carga es una imagen, pero es igual para un SWF
  2. // aquí creamos un movieClip vacío que contenga la imagen
  3. this.createEmptyMovieClip ("image_mc", this.getNextHighestDepth ());
  4. //aquí creamos un objeto "escuchador" que está atento a los eventos para detectar el inicio y fin de la carga
  5. var mclListener:Object = new Object ();
  6. //aquí establecemos qué queremos ejecutar al iniciar la carga
  7. mclListener.onLoadStart = function (target_mc:MovieClip)
  8. {
  9.     trace ("Inicia la carga del archivo");
  10.     target_mc.startTimer = getTimer ();
  11. };
  12. // Se invoca cada vez que se graba en el disco duro el contenido durante el proceso de carga (es decir, entre MovieClipLoader.onLoadStart y MovieClipLoader.onLoadComplete).
  13. mclListener.onLoadProgress = function (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
  14. {
  15.     trace (target_mc + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
  16. };
  17. //aquí establecemos qué queremos ejecutar al finalizar la carga
  18. mclListener.onLoadComplete = function (target_mc:MovieClip)
  19. {
  20.     trace ("Termina la carga del archivo");
  21.     target_mc.completeTimer = getTimer ();
  22. };
  23. //El evento onLoadInit se invoca cuando se han ejecutado las acciones del primer fotograma del clip cargado
  24. mclListener.onLoadInit = function (target_mc:MovieClip)
  25. {
  26.     //recién aquí podrás setear las propiedades del clip cargado
  27.     trace ("El clip ahora sí está listo para ser usado");
  28.     var timerMS:Number = target_mc.completeTimer - target_mc.startTimer;
  29.     target_mc.createTextField ("timer_txt", target_mc.getNextHighestDepth (), 0, target_mc._height, target_mc._width, 22);
  30.     target_mc.timer_txt.text = "loaded in " + timerMS + " ms.";
  31. };
  32. //creamos un objeto del tipo MovieClipLoader, como el nombre lo indica lo usamo para cargar los MovieClips
  33. var image_mcl:MovieClipLoader = new MovieClipLoader ();
  34. //aquí le decimos a AS que el MovieClipLoader llamado "image_mcl" será "escuchado" por el objeto "mclListener"
  35. image_mcl.addListener (mclListener);
  36. //finalmente cargamos nuestro clip en el movieClip vació que creamos al inicio que se llamaba "image_mc"
  37. image_mcl.loadClip ("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

Espero que te sirva, saludos
__________________
EVO I.T.
Elearning y Desarrollo Web en Argentina.