classes
URLRequestBufferItem.as
Stiahnuť URLRequestBufferItem.as
package sk.yoz.net
{
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.TimerEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.utils.Timer;
public class URLRequestBufferItem extends Object
{
public var buffer:URLRequestBuffer;
public var id:uint;
public var loader:EventDispatcher;
public var request:URLRequest;
public var priority:uint;
public var delay:uint;
protected var _ready:Boolean;
public function URLRequestBufferItem(
buffer:URLRequestBuffer,
id:uint,
loader:EventDispatcher,
request:URLRequest,
priority:uint,
delay:uint = 0):void
{
super();
if(!(loader is Loader || loader is URLLoader))
throw new Error("loader must be instance of Loader or " +
"URLLoader class");
this.buffer = buffer;
this.id = id;
this.loader = loader;
this.request = request;
this.priority = priority;
this.delay = delay;
_ready = delay ? false : true;
if(delay)
{
var timer:Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onDelay);
timer.start();
}
}
public function get dispatcher():EventDispatcher
{
return loader is Loader
? Loader(loader).contentLoaderInfo
: URLLoader(loader);
}
public function get ready():Boolean
{
return _ready;
}
public function load():void
{
if(loader is Loader)
Loader(loader).load(request);
else
URLLoader(loader).load(request);
}
public function close():void
{
try
{
if(loader is Loader)
Loader(loader).close();
else if(loader is URLLoader)
URLLoader(loader).close();
}
catch(error:Error){}
}
protected function onDelay(event:TimerEvent):void
{
var timer:Timer = Timer(event.currentTarget);
var type:String = TimerEvent.TIMER_COMPLETE;
timer.removeEventListener(type, onDelay);
_ready = true;
buffer.loadNext();
}
public static function getLoader(event:Event):EventDispatcher
{
return event.target is LoaderInfo
? LoaderInfo(event.target).loader
: URLLoader(event.target);
}
}
}