Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import mx.events.EventDispatcher;
- class com.tri4m.framework.data.loader.Progress extends MovieClip
- {
- private var addEventListener:Function;
- private var removeEventListener:Function;
- private var dispatchEvent:Function;
- private var __url:String;
- private var __timeStart:Number;
- private var __timeTaken:Number;
- private var __isTimeOut:Boolean = false;
- private var __percentLoaded:Number;
- private var __bytesLoaded:Number;
- private var __bytesTotal:Number;
- private var __errorCode:String;
- private var __httpStatus:Number;
- private var __width:Number;
- private var __height:Number;
- private var timeoutMS:Number = 5000;
- private var execOnStart:Function;
- private var execOnError:Function;
- private var execOnLoad:Function;
- private var execOnComplete:Function;
- private var execOnInit:Function;
- private var execOnTimeout:Function;
- private var onLoadStart:Function;
- private var onLoadError:Function;
- private var onLoadProgress:Function;
- private var onLoadComplete:Function;
- private var onLoadInit:Function;
- private var mcLoader:MovieClipLoader;
- private var dummy_mc:MovieClip;
- /**
- * getter
- */
- public function get url():String
- {
- return this.__url;
- }
- public function get timeStart():Number
- {
- return this.__timeStart;
- }
- public function get timeTaken():Number
- {
- return this.__timeTaken;
- }
- public function get isTimeOut():Boolean
- {
- return this.__isTimeOut;
- }
- public function get percentLoaded():Number
- {
- return this.__percentLoaded;
- }
- public function get bytesLoaded():Number
- {
- return this.__bytesLoaded;
- }
- public function get bytesTotal():Number
- {
- return this.__bytesTotal;
- }
- public function get errorCode():String
- {
- return this.__errorCode;
- }
- public function get httpStatus():Number
- {
- return this.__httpStatus;
- }
- public function get width():Number
- {
- return this.__width;
- }
- public function get height():Number
- {
- return this.__height;
- }
- /**
- * callbacks
- */
- public function set callbackOnStart(callback:Function):Void
- {
- this.execOnStart = callback;
- }
- public function set callbackOnError(callback:Function):Void
- {
- this.execOnError = callback;
- }
- public function set callbackOnLoad(callback:Function):Void
- {
- this.execOnLoad = callback;
- }
- public function set callbackOnComplete(callback:Function):Void
- {
- this.execOnComplete = callback;
- }
- public function set callbackOnInit(callback:Function):Void
- {
- this.execOnInit = callback;
- }
- public function set callbackOnTimeout(callback:Function):Void
- {
- this.execOnTimeout = callback;
- }
- /**
- * environment
- */
- public function set timeoutOn(ms:Number):Void
- {
- this.timeoutMS = ms;
- }
- /**
- *
- */
- public function Progress(target:MovieClip)
- {
- this.dummy_mc = target.createEmptyMovieClip("dummy_mc", 0);
- this.dummy_mc._visible = false;
- this.dummy_mc._alpha = 0;
- EventDispatcher.initialize(this);
- this.mcLoader = new MovieClipLoader();
- this.mcLoader.addListener(this);
- this.onLoadStart = function(target_mc:MovieClip):Void
- {
- this.__timeStart = getTimer();
- this.execOnStart();
- };
- this.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number):Void
- {
- this.__errorCode = errorCode;
- this.__httpStatus = httpStatus;
- this.execOnError();
- };
- this.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void
- {
- this.__bytesLoaded = bytesLoaded;
- this.__bytesTotal = bytesTotal;
- this.__timeTaken = getTimer() - this.__timeStart;
- if (this.__timeTaken > this.timeoutMS)
- {
- this.__isTimeOut = true;
- this.execOnTimeout();
- this.mcLoader.unloadClip(target_mc);
- return;
- }
- this.__percentLoaded = this.percentage(bytesLoaded, bytesTotal);
- this.execOnLoad();
- };
- this.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void
- {
- this.__httpStatus = httpStatus;
- this.execOnComplete();
- };
- this.onLoadInit = function(target_mc:MovieClip):Void
- {
- this.__width = dummy_mc._width;
- this.__height = dummy_mc._height;
- this.execOnInit();
- };
- }
- public function loadClip(URL:String):Void
- {
- this.__url = URL;
- this.mcLoader.loadClip(this.__url, this.dummy_mc);
- }
- private function percentage(__bytesLoaded:Number, __bytesTotal:Number):Number
- {
- return Math.floor((__bytesLoaded / __bytesTotal * 100) * 10000) / 10000;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement