更新:在瀏覽器中運行Flash時會有效,但如果從IDE運行,則不起作用。如果您遇到同樣的問題,您可能想嘗試在瀏覽器中運行。URLLoader在輪詢時卡住
我正在使用Flash & Actionscript 3.0從我的服務器反覆讀取文本文件的聊天應用程序。我使用URLLoader打開文件,並且它在第一時間正常工作。然而,在大約10次調用之後,URLLoader會卡住。
它不給出完成事件,不給出安全錯誤,不給出狀態事件並且不拋出異常。它根本不會觸發任何事件。我甚至爲URL添加了一個隨機值,以確保它不是緩存問題。當然,我可以檢測它何時被卡住,但似乎沒有任何方法可以解除它。即使我在URLLoader上調用close(),然後將其設置爲null並創建另一個,它也不會恢復輪詢。
下面是輪詢服務器並每兩秒鐘調用一次的函數。
private function check_server() {
var url:String = "http://coworkthailand.com/say/snd/index.php?"+Math.random();
if (loader != null) {
trace("was already checking "+loader.bytesLoaded+"/"+loader.bytesTotal);
return;
}
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(flash.events.IOErrorEvent.IO_ERROR,
function(e:Event) { loader = null; trace("fail"); })
loader.addEventListener(flash.events.SecurityErrorEvent.SECURITY_ERROR,
function(e:Event) { loader = null; trace("security error"); })
loader.addEventListener(flash.events.HTTPStatusEvent.HTTP_STATUS,
function(e:flash.events.HTTPStatusEvent) { trace("status "+e.status); });
try {
loader.load(new URLRequest(url));
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
這不是一個重要的項目,但任何想法將不勝感激!
「作品」,你的意思是「問題是可重現的」,或者相反,它只能在IDE中重現? (哪個IDE,BTW?) – 2009-01-18 22:28:42