有没有更简洁的方法来使用URLLoader?

时间:2011-04-21 18:17:28

标签: actionscript-3

我想在一行中使用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最简洁的方法是什么?

2 个答案:

答案 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);

希望有所帮助

享受:)