我想在一行中使用URLLoader,但我知道在 load
调用之后添加了侦听器时,Internet Explorer在加载本地文件时遇到了问题。
new URLLoader(new URLRequest('http://example.com')).addEventListener(
Event.COMPLETE, handleLoadedData
);
我知道使用URLLoader的详细但安全的方法是:
var request:URLRequest = new URLRequest('http://example.com');
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handleLoadedData);
loader.load(request);
使用适用于本地文件的URLLoader最简洁的方法是什么?
答案 0 :(得分:0)
如何创建一个提供加载数据的简单方法并只重用它的类呢?
我的意思是这样简单:
package yourdomain.net
{
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class DataLoader {
public var url:String;
public var completeCallback:Function;
private var loader:URLLoader;
public function DataLoader(url:String, completeCallback:Function) {
this.url = url;
this.completeCallback = completeCallback;
}
public function load():void {
var request:URLRequest = new URLRequest(url);
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, this.completeCallback);
loader.load(request);
}
public static function load(url:String, completeCallback:Function):void {
var dataLoader:DataLoader = new DataLoader(url, completeCallback);
dataLoader.load();
}
}
}
然后,你会在一行中使用它:
DataLoader.load('http://example.com',handleDataComplete);
我提出了类似的想法here。它基本上是相同的想法,只是添加了一些基本的错误处理。
答案 1 :(得分:0)
做一些代码:)然后休息 在AS3类中创建一个静态方法
public final class MyLoaders{
static public function dataLoader(var url:String, listener:Function):URLLoader{
// Code Here
}
}
你可以在APP中的任何地方调用loader
MyLoaders.dataLoader( url, listener);
希望有所帮助
享受:)