首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLLoader不响应.close()

URLLoader不响应.close()
EN

Stack Overflow用户
提问于 2012-10-07 06:45:12
回答 2查看 298关注 0票数 0

我的应用程序要求我能够在连接后阶段的任何时候中止/关闭URLLoader实例;也就是说,不管我是否已经连接并且文件传输已经开始,或者我是否已经连接并且文件传输还没有开始(服务器还没有开始发送文件)。

下面是我的代码:

代码语言:javascript
复制
var myTextLoader:URLLoader = new URLLoader();
myTextLoader.load(new URLRequest("myText.txt"));

这是我注意到的:

当我连接到服务器时,服务器立即开始发送文件,在实际的文件传输过程中,如果我调用myTextLoader.close(),它会立即中止。这是意料之中的。我可以通过在Firefox中执行SWF来监视这一点,并注意到当我发出close()时,网络连接从挂起变为中止。

但是,如果我连接到服务器,而文件传输还没有真正开始(我已经确认connect事件已经触发,服务器还没有开始发送文件),那么myTextLoader.close()就不起作用了。只有在开始从服务器传输第一个字节之后,.close()才会生效。我可以验证连接是否在Firebug中处于挂起状态。在传输开始之前,.close()不起作用。

有什么办法解决这个问题吗?我需要能够调用.close(),并在不考虑连接阶段的情况下断开连接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-07 16:29:00

使用close()时,第三方AS3 HTTPClient (https://github.com/gabriel/as3httpclient)似乎未出现此问题。

票数 0
EN

Stack Overflow用户

发布于 2012-10-07 06:55:33

我首先想到的是,在调用close()方法的地方创建一个被设置为true的bool "aborted“。像这样:

代码语言:javascript
复制
function abort():void {
     _aborted = true;
     myTextLoader.close();
}

然后在onProgress事件或任何类似事件中的任何位置检查它的值,以便在它的值为真时再次实际调用URLLoader close()方法...

代码语言:javascript
复制
function onProgress(evt:ProgressEvent):void {
     if (_aborted) {
           myTextLoader.close();
     }
}

它不是一个漂亮的东西,是一个丑陋的变通方法,但它可以工作,因为当第一个比特实际收到时,你就会知道你是否已经想要关闭它。

你有没有找到任何关于这方面的bug报告?我怀疑这可能是故意的行为..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12764543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档