Обновление: каким-то образом это работает при запуске flash в браузере, но не работает, если вы запускаете из IDE. Вы можете попробовать запустить браузер, если у вас возникла та же проблема.
Я создаю приложение для чата, которое несколько раз читает текстовый файл с моего сервера, используя Flash & Actionscript 3.0. Я открываю файл с помощью URLLoader, и сначала он работает нормально. Однако после примерно 10 звонков URLLoader застревает.
Не выдает событие завершения, не выдает ошибку безопасности, не выдает событие состояния и не выдает исключение. Это просто никогда не вызывает события вообще. Я даже добавил случайное значение в URL, чтобы убедиться, что это не проблема кэширования. Конечно, я могу определить, когда он застрянет, но, похоже, нет никакого способа его расклеить. Даже если я вызову close () для URLLoader, а затем установлю для него значение 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.");
}
}
Это не важный проект, но любые идеи будут высоко оценены!