Я пытаюсь сделать HTTP-запрос в Adobe Flex (Actionscript) следующим образом:
var p:PersonSearchController = new PersonSearchController();
showAlertDialog();
p.search(sc);
alert.cancel();
navigator.pushView(views.PersonSearchResults, +p.getResp());
Таким образом, в основном, перед поиском мы получаем окно AlertDialog "Поиск ...", как только поискзавершено, диалоговое окно исчезает, и экран результатов помещается на экран ...
Вот метод поиска:
function search{
var requestSender:URLLoader= new URLLoader();
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
var urlRequest :URLRequest = new URLRequest("http://airpoint05:8888/MPS2/PersonSearch");
var msg:String = "blah";
/* Setup HTTP Request */
urlRequest.data = msg;
urlRequest.contentType = "application/x-www-form-urlencoded";
urlRequest.method = URLRequestMethod.POST;
requestSender.load(urlRequest);
}
А вот функция completeHandler:
/* URL has completed and got a response */
private function completeHandler(event:Event):void
{
var response:URLLoader = URLLoader(event.target);
this.res = URLLoader(event.target).data;
trace(this.res);
response.close();
}
Когда вызывается эта строка: navigator.pushView (views.PersonSearchResults, + p.getResp ());
p.getResp () - ничто, поскольку ответ еще не вернулся.Я хочу, чтобы программа в основном блокировалась до получения HTTPResponse, чтобы я мог обработать результаты.В тот момент, когда всплывающее окно появляется и быстро исчезает, а в фоновом режиме поиск прекращается и выполняется запрос ... Я получаю ответ, но только после того, как экран результатов был выдвинут.Как я могу сделать блокировку всплывающих окон, пока мы не получим ответ HTTP?
Спасибо, Фил