Flex 어플리케이션을 위해 HTTP를 통해 바이너리 데이터를 가져 오려고 시도하면서 몇 가지 걸림돌이 발생했습니다. HTTPService는 바이너리 데이터를 잘 처리하지 못했지만 사람들은 URLLoader를 사용한다고 말했습니다. 하지만 URLLoader에는 HTTPService에서 제공하는 멋진 AsyncToken/IResponder 인터페이스가 없습니다.URLLoader가 AsyncToken을 반환하도록 만드는 방법?
그래서 일부 검색을 수행했지만 URLLoader를 확장하여이 기능을 제공하지 못했습니다. 내가 나서서 그것을 자신을 자상을했다 : http://pastebin.com/d7369d0e0
은 기본적으로는은 URLLoader와 AsyncToken 관련을 래핑하고은 URLLoader 결과 /를 AsyncToken 관련에 제기 얻을 결함에, COMPLETE IO_ERROR 및 SECURITY_ERROR 이벤트를 매핑합니다.
기본 사용법 :
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
그래서 읽고 자하는 바이너리 데이터는 SWF이지만 SWF를 실행하지 않으려합니다 (예 : SWFLoader 또는 Loader does?) resultFormat을 텍스트로 설정하여 HTTPService를 사용하려고 시도 했습니까? –
안녕하세요 James, HTTPService를 텍스트로 사용하려고했지만 SWFLoader.source를 해당 호출의 결과로 설정하면 SWF는 그렇지 않습니다. 로드! 내 비동기로 시도하면 URLLoader를 호출하고 결과로 ByteArray를 다시 얻으면 작동합니다. – Karthik
아마도 writeUTFBytes 같은 것을 사용하여 ByteArray를 만들어야 할 필요가 있을까요? –