Advertisement
fruffl

Image Preloader

Jan 27th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import com.tri4m.framework.core.builder.MovieClipController;
  2. import com.tri4m.framework.data.loader.Progress;
  3. class com.tri4m.application.js.external.ImagePreloader
  4. {
  5.     private var base:MovieClipController;
  6.     private var progressbar:MovieClipController;
  7.     private var controllerWrapper:MovieClipController;
  8.     private var base_InstanceName:String = "ExternalInterfaceImagePreloader";
  9.     private var progressbar_InstanceName:String = "Progressbar";
  10.     private var controllerWrapper_InstanceName:String = "ControllerWrapper";
  11.     private var controller:Progress;
  12.     public function get Base():MovieClip
  13.     {
  14.         return this.base.MovieClip;
  15.     }
  16.     public function get Progressbar():MovieClip
  17.     {
  18.         return this.progressbar.MovieClip;
  19.     }
  20.     public function get ControllerWrapper():MovieClip
  21.     {
  22.         return this.controllerWrapper.MovieClip;
  23.     }
  24.     public function ImagePreloader(target:MovieClip, depth:Number)
  25.     {
  26.         this.base = new MovieClipController(target, this.base_InstanceName, depth);
  27.         this.progressbar = new MovieClipController(this.Base, this.progressbar_InstanceName);
  28.         this.controllerWrapper = new MovieClipController(this.Base, this.controllerWrapper_InstanceName);
  29.         this.controller = new Progress(this.ControllerWrapper);
  30.         this.controller.callbackOnStart = this.createCallbackOnStart();
  31.         this.controller.callbackOnError = this.createCallbackOnError();
  32.         this.controller.callbackOnLoad = this.createCallbackOnLoad();
  33.         this.controller.callbackOnComplete = this.createCallbackOnComplete();
  34.         this.controller.callbackOnInit = this.createCallbackOnInit();
  35.         this.controller.callbackOnTimeout = this.createCallbackOnTimeout();
  36.         this.controller.timeoutOn = 60000;
  37.         this.controller.loadClip('xxxxl.jpg');
  38.     }
  39.     private function createCallbackOnStart():Function
  40.     {
  41.         var p:Progress = this.controller;
  42.         return function ():Void
  43.         {
  44.             flash.external.ExternalInterface.call("alert", 'start download ' + p.url);
  45.         };
  46.     }
  47.     private function createCallbackOnError():Function
  48.     {
  49.         var p:Progress = this.controller;
  50.         return function ():Void
  51.         {
  52.             flash.external.ExternalInterface.call("alert", 'error ' + p.httpStatus);
  53.         };
  54.     }
  55.     private function createCallbackOnLoad():Function
  56.     {
  57.         var p:Progress = this.controller;
  58.         var send:Boolean = false;
  59.         return function ():Void
  60.         {
  61.             if(send === false)
  62.             {
  63.                 flash.external.ExternalInterface.call("alert", 'bytesTotal ' + p.bytesTotal);
  64.                 send = true;
  65.             }
  66.             // not yet...
  67.             //flash.external.ExternalInterface.call("alert", 'loading ' + int(p.percentLoaded) + '%');
  68.         };
  69.     }
  70.     private function createCallbackOnComplete():Function
  71.     {
  72.         var p:Progress = this.controller;
  73.         return function ():Void
  74.         {
  75.             flash.external.ExternalInterface.call("alert", p.timeTaken + 'ms');
  76.         };
  77.     }
  78.     private function createCallbackOnInit():Function
  79.     {
  80.         var p:Progress = this.controller;
  81.         return function ():Void
  82.         {
  83.             flash.external.ExternalInterface.call("alert", 'width ' + p.width + 'px/height ' + p.height + 'px');
  84.         };
  85.     }
  86.     private function createCallbackOnTimeout()
  87.     {
  88.         var p:Progress = this.controller;
  89.         return function ():Void
  90.         {
  91.             flash.external.ExternalInterface.call("alert", 'Timeout after ' + p.timeTaken + 'ms');
  92.         };
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement