XML 문서에 나열된 영화에 대한 Rotten Tomatoes의 API를 쿼리하고 있습니다. 내가 겪고있는 문제는 whist 반복을 통해 각각의 무비에 대해 질의를하고, RT의 API 제한을 치고 IO 오류를 던지고있는 것이다.AS3 지연 실행?
약 1 초 정도 실행을 지연시킬 수있는 방법이 있습니까?
XML 문서에 나열된 영화에 대한 Rotten Tomatoes의 API를 쿼리하고 있습니다. 내가 겪고있는 문제는 whist 반복을 통해 각각의 무비에 대해 질의를하고, RT의 API 제한을 치고 IO 오류를 던지고있는 것이다.AS3 지연 실행?
약 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();
}
? XML을로드하는 데 시간이 오래 걸리지 않아야합니다. 로드하는 아이템이 xml에 포함되어 있다면 타이머가 도움이되지 않습니다. 너무 오래 걸릴 것이고 나쁜 경험을 할 것입니다. 사용자가 빠른 연결을 가지고 있지만 각 파일에 대한 지연을 기다려야한다고 가정 해보십시오. 내가 할 수있는 것은 다음 파일로 이동하기 전에 하나의 파일 (loadBytes)을로드했는지 확인하는 것입니다. 각 노드에 포함 된 가장 큰 파일로 충분하면됩니다.
더 유연하게 사용자 연결에 의존합니다.