Я пытался извлечь двоичные данные по 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());
}
Это правильный способ решения проблемы? Существуют ли существующие решения? Я хотел бы услышать обратную связь.
Спасибо
Karthik