Я пытаюсь прочитать данные с сервера, используя GET URLRequest с URLLoader, и он работает. Проблема в том, что работает только один раз.
public class Settings
{
private static var request:URLRequest;
private static var loader:URLLoader;
public static function getRequest(url:String):void
{
request = new URLRequest(url);
request.method = URLRequestMethod.GET;
loader = new URLLoader();
loader.addEventListener(flash.events.Event.COMPLETE, responseHolder);
loader.load(request);
}
}
Всякий раз, когда я открываю приложение Flash, я вставляю его и вызываю getRequest, я получаю правильные данные от URLLoader. Каждый раз, когда я вызываю его впоследствии, я все равно получаю ответ, и Event.COMPLETE по-прежнему отправляется, но полученные данные всегда являются данными, полученными из первого GET. Только если я закрою и снова открою приложение, GET действительно получит самые свежие данные.
Я также запустил сеанс удаленной отладки, чтобы проверить это, и оказалось, что только первый вызов этой функции даже связывается с сервером, с которого он пытается читать.
Единственное объяснение, которое я могу придумать, заключается в том, что URLRequest и URLLoader не очищаются после чтения данных, поэтому, когда вызывается другой GET, они просто повторно используют последние полученные данные, не пытаясь связаться с сервером. Но я их очищаю как таковые:
//in Settings class
private static function responseHolder(e:flash.events.Event):void
{
request = null;
loader.removeEventListener(flash.events.Event.COMPLETE, responseHolder);
loader.close();
loader = null;
}
Есть ли что-то, что мне нужно сделать, чтобы снова включить GET URLRequests?