Я пытался получить двоичные данные через HTTP для своего приложения Flex и наткнулся на некоторые препятствия. Люди говорили, что HTTPService плохо справляется с двоичными данными, используя URLLoader. Но URLLoader не имеет приятного интерфейса AsyncToken / IResponder, который предоставляет HTTPService.
Итак, я немного поискал и не смог найти никого, кто бы расширил URLLoader для предоставления такой функциональности. Я пошел дальше и сам попробовал: http://pastebin.com/d7369d0e0
В основном он обертывает URLLoader и AsyncToken и сопоставляет события COMPLETE, IO_ERROR и SECURITY_ERROR из URLLoader с результатами / ошибками, которые возникают в AsyncToken.
Основное использование:
var tidbitLoader:AsyncURLLoader = new AsyncURLLoader();
tidbitLoader.dataFormat = URLLoaderDataFormat.BINARY;
var asyncToken:AsyncToken = tidbitLoader.load(new URLRequest("http://localhost/SampleTidbit.swf"));
asyncToken.addResponder(this);
public function result(resultEvent:Object):void
{
trace("result");
}
public function fault(faultEvent:Object):void
{
var fault:FaultEvent = faultEvent as FaultEvent;
trace("fault: " + fault.toString());
}
Это правильный подход к проблеме? Есть ли существующие решения? Хотелось бы услышать отзывы.
Спасибо,
Картик