2009-05-30 5 views

답변

3

flex는 이벤트 기반이므로 매우 간단해야합니다. 그냥 두 URLRequest 개체를 만들 (나는 두 API가 REST 기반이라고 가정 함), GET 변수를 설정합니다. 각 URLRequest 객체에 대한 loadComplete 이벤트 리스너를 만들고 각 eventlistener에서 두 API의 결과를 처리하는 코드를 작성합니다.

그렇게해야합니다.

+0

답장을 보내 주셔서 감사합니다 futureelite7. 대답은 매우 멋지다. 하지만 eventlistener를 한 번에 하나의 이벤트로 설정하면된다. 그래서 어떻게 둘 다 API 요청 개체 할 수 있습니다. 어떤 참조 URL이라도 말해 줄 수 있습니까 –

+0

두 개의 URLRequest 객체 각각에 eventlistener를 추가 할 수 있습니까? 따라서 각 URLRequest 객체는 리스너에 이벤트를 전달합니다. 원하는 경우 동일한 처리기를 사용할 수 있습니다. – futureelite7

0

"동시에"아니요. 우선, 하나의 (백그라운드) 스레드 만 작업 할 수 있으며 스레드는 한 번에 하나만 할 수 있으므로 코드를 작성하면 요청 중 하나가 항상 먼저 시작됩니다.

한 번의 호출로 두 서비스 모두에 요청을 보낼 수 있는지 여부가 궁금하다면 대답은 모두 다른 URL을 가지며 ActionScript API는 다음과 같이 배열을 가져 가지 않습니다. URL 매개 변수는 문자열 만 사용합니다).

말하자면, Flex 애플리케이션에서 직접 작성한 서비스 (예 : C#)를 호출하여 Google에 서비스 호출 (동 기적으로)을 요청하면 "가짜"라고 할 수 있습니다 야후는 다시 구글과 야후에서 돌아온 결과로 구성된 수정 된 결과 세트와 함께 플렉스 앱으로 통제권을 돌려 보낸다.

질문에 대한 오해 (또는 지나친 생각)가 아니라면. 도움이

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()"> 

    <mx:Script> 
     <![CDATA[ 

      import mx.rpc.http.HTTPService; 
      import mx.rpc.events.ResultEvent; 
      import mx.rpc.events.FaultEvent; 

      private function onCreationComplete():void 
      { 
       callGoogle(); 
       callYahoo(); 
      } 

      private function callGoogle():void 
      { 
       var svc:HTTPService = new HTTPService(); 
       svc.url = "http://api.google.com/someservice.xml"; 
       svc.addEventListener(ResultEvent.RESULT, onGoogleResult, false, 0, true); 
       svc.addEventListener(FaultEvent.FAULT, onGoogleFault, false, 0, true); 
       svc.send(); 
      } 

      private function callYahoo():void 
      { 
       var svc:HTTPService = new HTTPService(); 
       svc.url = "http://api.yahoo.com/someservice.xml"; 
       svc.addEventListener(ResultEvent.RESULT, onYahooResult, false, 0, true); 
       svc.addEventListener(FaultEvent.FAULT, onYahooFault, false, 0, true); 
       svc.send(); 
      } 

      private function onGoogleResult(event:ResultEvent):void 
      { 
       trace(event.result); 
      } 

      private function onGoogleFault(event:FaultEvent):void 
      { 
       trace(event.fault.message); 
      } 

      private function onYahooResult(event:ResultEvent):void 
      { 
       trace(event.result); 
      } 

      private function onYahooFault(event:FaultEvent):void 
      { 
       trace(event.fault.message); 
      } 

     ]]> 
    </mx:Script> 

</mx:Application> 

희망 : -;하지 동시에,하지만 하나의 오른쪽 다른 후, mx.rpc.HTTPService 사용)

다음은이 개 서비스를 호출 처리 할 수있는 한 가지 방법을 보여주는 몇 가지 예제 코드입니다! 코멘트와 함께 포스트와 나는 시선을 유지할 것이다.

관련 문제