2012-03-10 3 views
0

XML 문서에 나열된 영화에 대한 Rotten Tomatoes의 API를 쿼리하고 있습니다. 내가 겪고있는 문제는 whist 반복을 통해 각각의 무비에 대해 질의를하고, RT의 API 제한을 치고 IO 오류를 던지고있는 것이다.AS3 지연 실행?

약 1 초 정도 실행을 지연시킬 수있는 방법이 있습니까?

답변

1

짧은 대답 : Timer을 사용하십시오.

var movies:Array; 

그리고 서버에 API를 호출 할이 영화의 각 :

는 배열에서 100 영화를 가정하자. 당신이 전달하는 영화 당신에게 URLRequest 객체를 제공하는 기능을 인

private function makeAPICall():void 
{ 
    // Construct URLRequest based on current movie object. 
    var urlRequest:URLRequest = getURLRequest(movies[currentMovieIndex]); 

    var urlLoader:URLLoader = new URLLoader(); 
    urlLoader.addEventListener("complete", completeHandler); 
    urlLoader.load(urlRequest); 
} 

getURLRequest() : 당신은 URLLoader를 사용하는 가정, 그리고

var currentMovieIndex:int = 0; // first movie 

: 우선은 현재 동영상을 표시하는 변수를 유지하는 것 그것을 논증으로. 당신의 completeHandler()에서

:

private function completeHandler(event:Event):void 
{ 
    ... 

    if (++currentMovieIndex < 100) { 
     var timer:Timer = new Timer(3000, 1); // 3-second delay 
     timer.addEventListener("timer", timerHandler); 
     timer.start(); 
    } 
} 

당신의 timerHandler()에서 : 오류의 원인이되는 XML에서로드 무엇

private function timerHandler(event:Event):void 
{ 
    makeAPICall(); 
} 
0

? XML을로드하는 데 시간이 오래 걸리지 않아야합니다. 로드하는 아이템이 xml에 포함되어 있다면 타이머가 도움이되지 않습니다. 너무 오래 걸릴 것이고 나쁜 경험을 할 것입니다. 사용자가 빠른 연결을 가지고 있지만 각 파일에 대한 지연을 기다려야한다고 가정 해보십시오. 내가 할 수있는 것은 다음 파일로 이동하기 전에 하나의 파일 (loadBytes)을로드했는지 확인하는 것입니다. 각 노드에 포함 된 가장 큰 파일로 충분하면됩니다.

더 유연하게 사용자 연결에 의존합니다.