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