私のアプリケーションでは、接続後の段階の任意の時点でURLLoaderインスタンスを中止/閉じることができる必要があります。つまり、接続してファイル転送がすでに開始されているかどうか、または接続していてファイル転送がまだ開始されていないかどうかに関係なく(サーバーはまだファイルの送信を開始していません)。
これが私のコードです:
var myTextLoader:URLLoader = new URLLoader();
myTextLoader.load(new URLRequest("myText.txt"));
これは私が気づいたことです:
サーバーに接続し、サーバーがファイルの送信をすぐに開始すると、実際のファイル転送中にmyTextLoader.close()を呼び出すと、すぐに中止されます。これは予想されます。FirefoxでSWFを実行し、close()を発行すると、ネットワーク接続が保留から中止に変わることに気付くと、これを監視できます。
ただし、サーバーに接続し、ファイル転送が実際に開始されていない場合(接続イベントが発生し、サーバーがファイルの送信を開始していないことを確認した場合)、myTextLoader.close()は効果がありません。最初のバイトがサーバーから転送され始めた後でのみ、.close()は効果があります。接続がFirebugのPendingでスタックしていることを確認できます。.close()は、転送が開始されるまで効果がありません。
この問題を回避する方法はありますか?.close()を呼び出して、接続ステージに関係なく接続を切断できるようにする必要があります。