我的应用程序要求我能够在连接后阶段的任何时候中止/关闭 URLLoader 实例;即无论我是否已经连接并且文件传输已经开始,或者我是否已经连接并且文件传输尚未开始(服务器尚未开始发送文件)。
这是我的代码:
var myTextLoader:URLLoader = new URLLoader();
myTextLoader.load(new URLRequest("myText.txt"));
这是我注意到的:
当我连接到服务器时,服务器立即开始发送文件,在实际文件传输期间,如果我调用 myTextLoader.close(),它会立即中止。这是意料之中的。我可以通过在 Firefox 中执行 SWF 来监控这一点,并注意到当我发出 close() 时,网络连接从 Pending 变为 aborted。
但是,如果我连接到服务器,并且文件传输实际上还没有开始(我已经确认连接事件已经触发,并且服务器根本没有开始发送文件),那么 myTextLoader.close() 无效。只有在第一个字节开始从服务器传输之后, .close() 才会产生任何影响。我可以验证连接是否卡在 Firebug 中的 Pending 中。.close() 在传输开始之前无效。
任何想法如何解决这个问题?无论连接阶段如何,我都需要能够调用 .close() 并断开连接。