Reloader.as

  1. /**
  2.  * Cargador de película
  3.  *
  4.  * ProInf.net, 2008
  5.  * GNU General Public License: http://creativecommons.org/licenses/GPL/2.0/deed.es
  6.  *
  7.  */
  8. class Reloader {
  9.  
  10. //////////////////////////////////////////////////
  11. // Propiedades de la clase
  12.  
  13. private static var reloader:Reloader = null;
  14.  
  15. //////////////////////////////////////////////////
  16. // Propiedades
  17.  
  18. private var loader:MovieClipLoader = null;
  19.  
  20. private var porcentaje:Number = 0;
  21. private var mensaje:String = "";
  22.  
  23. private var container:Container = null;
  24.  
  25. //////////////////////////////////////////////////
  26. // Constructor
  27.  
  28. private function Reloader() {
  29. container = Container.getInstance();
  30. container.hidePerCent();
  31.  
  32. this.loader = new MovieClipLoader();
  33. loader.addListener (getListener());
  34. }
  35.  
  36. public static function getInstance():Reloader {
  37. if (reloader == null) {
  38. reloader = new Reloader();
  39. }
  40. return reloader;
  41. }
  42.  
  43. //////////////////////////////////////////////////
  44. // Destructor
  45.  
  46. /** Free resources. Call manually just before delete this class */
  47. public function die() {
  48. }
  49.  
  50. //////////////////////////////////////////////////
  51. // Getters
  52.  
  53. public function getMessage():String { return mensaje; }
  54.  
  55.  
  56. //////////////////////////////////////////////////
  57. // Interfaz
  58.  
  59. public function init (link:String) {
  60. var mc:MovieClip = container.getTarget();
  61. loader.loadClip (link, mc);
  62. //Console.show("Reloader.init " + link + " " + mc);
  63. }
  64.  
  65. //////////////////////////////////////////////////
  66. // Métodos propios
  67.  
  68. private function getListener():Object {
  69. var listener:Object = new Object();
  70. var container:Container = this.container;
  71.  
  72. listener.onLoadStart = function (target:MovieClip):Void {
  73. porcentaje = 0;
  74. container.showPerCent(porcentaje);
  75. //Console.show("onLoadStart");
  76. }
  77. listener.onLoadProgress = function (target:MovieClip, loadedBytes:Number, totalBytes:Number):Void {
  78. porcentaje = Math.round((loadedBytes*100)/totalBytes);
  79. container.showPerCent(porcentaje);
  80. }
  81. listener.onLoadComplete = function (target:MovieClip):Void {
  82. container.hidePerCent();
  83. container.showTarget();
  84. mensaje = "";
  85. //Console.show("onLoadComplete " + target );
  86. }
  87. listener.onLoadInit = function(target:MovieClip):Void {
  88. // Aquí obtiene un valor correcto para la anchura y la altura
  89. //Console.show("onLoadInit "+ target._width + "x"+target._height);
  90. }
  91. listener.onLoadError = function (target:MovieClip):Void {
  92. container.showError("error");
  93. }
  94. return listener;
  95. }
  96.  
  97.  
  98. }

Proinf.net