开发者

Is there a more concise way to use a URLLoader?

开发者 https://www.devze.com 2023-02-28 03:14 出处:网络
I\'m want to use a URLLoader in one line, but I know Internet Explorer has given me problems loading local files when the listener is added after the load call.

I'm want to use a URLLoader in one line, but I know Internet Explorer has given me problems loading local files when the listener is added after the load call.

new URLLoader(new URLRequest('http://example.com')).addEventListener(
    Event.COMPLETE, handleLoadedData
);

I know the verbose, but safe way of using a URLLoader is:

var request:URLRequest = new URLRequest('http://example.com');  
var loader:URLLoader = new URLLoader();  
loader.addEventListener(Event.COMPLETE, handleLoadedData);  
loader.load(re开发者_StackOverflow中文版quest);

What's the most concise way of using URLLoader that works with local files?


What about creating a class that offers a simple way to load data and just reuse it?

I mean something simple like this:

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();
        }
    }
}

And then, you'd use it in one line like this:

DataLoader.load('http://example.com',handleDataComplete);

I've proposed a similar idea here. It's basically the same idea, just adding some basic error handling.


DO some code :) and rest then make a Static method in AS3 class like that

public final class MyLoaders{
    static public function dataLoader(var url:String, listener:Function):URLLoader{
        // Code Here
    }
}

you can call loader as anywhere in APP

MyLoaders.dataLoader( url, listener);

Hopes that helps

enjoy :)

0

精彩评论

暂无评论...
验证码 换一张
取 消