Files
haxework/com/abit/haxework/net/BaseURLLoader.hx
2013-08-09 10:00:21 +02:00

55 lines
1.5 KiB
Haxe
Executable File

package com.abit.haxework.net;
import flash.net.URLLoaderDataFormat;
import flash.events.SecurityErrorEvent;
import com.abit.haxework.net.callback.Callback;
import com.abit.haxework.net.callback.ICallback;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.URLLoader;
import com.abit.haxework.net.ILoader.Method;
class BaseURLLoader<T> extends BaseLoader<T> {
private var dataFormat:URLLoaderDataFormat;
private var loader:URLLoader;
public function new() {
super();
dataFormat = URLLoaderDataFormat.TEXT;
}
override private function internalRequest():Void {
loader = buildLoader();
loader.load(new URLRequest(url));
}
private function buildLoader():URLLoader {
var loader:URLLoader = new URLLoader();
loader.dataFormat = dataFormat;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
return loader;
}
override private function dispose():Void {
super.dispose();
if (loader != null) {
loader.removeEventListener(Event.COMPLETE, onComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
loader = null;
}
}
override public function cancel():Void {
if (loader != null) {
try {loader.close();} catch (error:Dynamic) {}
}
super.cancel();
}
}