我试图通过 HTTP 为我的 Flex 应用程序检索二进制数据,但遇到了一些绊脚石。HTTPService 好像不太好处理二进制数据,有人说用 URLLoader。但是 URLLoader 没有 HTTPService 提供的漂亮的 AsyncToken/IResponder 接口。
所以,我做了一些搜索,找不到任何扩展 URLLoader 来提供这种功能的人。我自己尝试了一下: http: //pastebin.com/d7369d0e0
基本上,它包装了一个 URLLoader 和一个 AsyncToken,并将来自 URLLoader 的 COMPLETE、IO_ERROR 和 SECURITY_ERROR 事件映射到在 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());
}
这是解决问题的正确方法吗?有现成的解决方案吗?我很想听听反馈。
谢谢,
卡尔提克