0

モバイル デバイスに URLRequest をロードしています。インターネットがむらがある場合は停止します。ほとんどの場合は機能しますが、特定の割合で動かなくなることがあります。読み込みが停止したかどうかを確認し、3 秒後に「再試行」する方法はありますか? また、たとえば 10 回試してみて、その後エラー メッセージをスローして、ユーザーに知らせることはできますか?

public function loadIt()
{
var theImage = "http://www.Example.com/Example.png"; // real url not given here
my_loader.load(new URLRequest(theImage));
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, startListener);

my_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener);
    if(autoPlayAd=="true")
    {
    playAd();
    }
}



public function progressListener(e:ProgressEvent):void
    {
    loadingStatus.Per.text = Math.floor((e.bytesLoaded/e.bytesTotal)*100)+ "%";
    }
4

1 に答える 1

2

残念ながら、Flash にはそのような種類のタスクのための組み込みシステムがありません..しかし、実装するのはそれほど難しくありません。URLRequest の idleTimeout プロパティを使用して、特定のタイムアウトを設定できます: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#idleTimeout その後、エラーをキャッチできます。タイムアウトのために発生するイベントを再試行します。

私は通常それを使用しません。たとえば、10 秒間隔の単純な Timer オブジェクトがあります。読み込みを開始すると ( loader.load())、タイマーも開始します ( timer.start())。と の 2 つの単純なプロパティがありisLoading <Boolean>ますretries <uint>。次に、TIMER_TICK イベントが発生し、チェックif (isLoading)し、発生した場合は、リクエストを停止し (クローズ、アンロード、ローダー内で実行できるすべてのことを try-catch ステートメントで)、再度リクエストを開始します。もちろん、retries変数を増やして、最大再試行変数と等しい場合は、読み込みを停止します。

幸運を!

于 2014-05-23T06:32:16.480 に答える