1

サーバーのリソース(画像・音声)を利用するシステムを開発しています。ユーザーのアクションで、特定のリソースをダウンロードして使用します。

これらすべてのリソースのダウンロードが完了する前に、ユーザーが別のアクションを実行した場合、現在のリソースのダウンロードを中止/キャンセルしたいと考えています。これは可能ですか?

Loader.stop() メソッドを試してみましたが、正常に動作していないようです。

これをキャンセルしないと、新しいリソースのダウンロード プロセスが遅くなり、ユーザーは新しいリソースを長時間待つ必要があります。

4

5 に答える 5

2

それは少し極端ですが、それを行います。Loader.close()で十分です。

    private var imageLoader:Loader;
    private function load(imageIndex:int = 0):void {
        //if it's already loading something. Cancels the current loading.
        if (imageLoader && imageLoader.contentLoaderInfo) {
            imageLoader.close();
            imageLoader.unloadAndStop(true);
            imageLoader.contentLoaderInfo.removeEventListener(Event.INIT, onImageLoaded);
            imageLoader = null;
        }
        imageLoader = new Loader();
        imageLoader.contentLoaderInfo.addEventListener(Event.INIT, onImageLoaded);
        imageLoader.load(new URLRequest(staticVo.images[imageIndex].imageFile));
    }
于 2011-08-09T15:32:59.910 に答える
1

私は次のことを行いました: Loader オブジェクトを削除し、そのすべてのリスナーを削除しました。現在、システムがリソースのダウンロードを続けていても、それを表示する場所はなく、完了/進行/失敗時に呼び出すイベントもありません。

于 2011-06-06T15:22:15.820 に答える
0

このアプローチが役立つ場合があります。

http://onflash.org/ted/2007/12/progressive-image-loading-with.php

于 2009-10-20T05:43:31.657 に答える
0

実際のサーバーで試しましたか?Flash IDE には、Loader.close()正しく動作しない既知のバグがあります...

于 2009-10-20T06:30:28.270 に答える
0

Soundクラスのclose()メソッドを使用して、サウンドのダウンロードを停止できます。この方法

ストリームを閉じて、データのダウンロードを停止します。close()メソッドが呼び出された後、ストリームからデータを読み取ることはできません。

画像と動画に関しては、Loaderクラスにはunload() メソッドがありますが、ダウンロードの途中でそのメソッドを呼び出しても機能するかどうかはわかりません。

于 2009-10-09T10:26:46.637 に答える