2012-03-10 25 views
0

私は、XML文書にリストされたムービー用のRotten TomatoesのAPIを照会しています。私が抱えている問題は、反復処理を繰り返すことで、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に含まれている場合、タイマーは役に立ちません。それは時間がかかり、悪い経験をするでしょう。ユーザーが高速な接続を持っているが、各ファイルの遅延を待たなければならないとします。私がやることは、次のファイルに移動する前に1つのファイル(loadBytes)をロードしたことを確認することです。各ノードに含まれている最大のファイルで十分です。

これは、ユーザーの接続により柔軟に依存します。

関連する問題