Всем привет.
Хочу написать класс, который смог бы загружать JSON и картинки JPG, PNG. Подскажите пожалуйста, как бы это правильней реализовать? Готовые решения типа менеджеров загрузки не интересуют.
Как я полагаю, при окончании загрузки мне полученные данные нужно складывать в какой-нибудь контейнер data:* и оттуда забирать по окончанию события? Как правильнее сделать, т.к. загружаемые данные разных типов... И Loader не сможет забирать, если будут приходить текстовые данные - получается мне перед этим нужно проверять расширение файла?
Так вот начал:
Код AS3:
package
{
import flash.display.Loader;
import flash.events.Event;
import flash.events.HTTPStatusEvent;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.system.LoaderContext;
public class MainLoader
{
private var _urlLoader:URLLoader;
private var _loader:Loader;
public var data:*;
public function MainLoader(url:String)
{
_urlLoader = new URLLoader();
_urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
_urlLoader.addEventListener(Event.COMPLETE, onBinaryLoadCompleteHandler);
_urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onBinaryIOErrorHandler);
_urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onBinaryHTTPStatusHandler);
_urlLoader.load(new URLRequest(url));
}
private function onBinaryHTTPStatusHandler(e:HTTPStatusEvent):void
{
}
private function onBinaryIOErrorHandler(e:IOErrorEvent):void
{
}
private function onBinaryLoadCompleteHandler(e:Event):void
{
_loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.allowCodeImport = true;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCompleteHandler);
_loader.loadBytes(e.currentTarget.data, context);
}
private function onLoadCompleteHandler(e:Event):void
{
trace('COMPLETE!');
}
}
}