Есть ли более краткий способ использовать URLLoader? - PullRequest
1 голос
/ 21 апреля 2011

Я хочу использовать URLLoader в одной строке, но я знаю, что Internet Explorer дал мне проблемы с загрузкой локальных файлов при добавлении слушателя после load вызова.

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 голосов
/ 21 апреля 2011

СДЕЛАЙТЕ немного кода :) и отдыхайте потом сделать статический метод в классе AS3 вот так

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

Вы можете вызывать загрузчик как в любом месте приложения

MyLoaders.dataLoader( url, listener);

Надежды, которые помогают

наслаждайся:)

0 голосов
/ 21 апреля 2011

А как насчет создания класса, который предлагает простой способ загрузки данных и их повторного использования?

Я имею в виду нечто простое, как это:

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

Я предложил аналогичную идею здесь . Это в основном та же идея, просто добавив немного базовой обработки ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...