Серьезно. Flex очень раздражает меня. Есть ли способ заставить его ждать httpservice, чтобы получить свои данные без использования таймера?
На данный момент мой код выглядит так:
protected function loginUser(event:MouseEvent):void
{
if(txtEmail.text == "" || txtPassword.text == "")
{
Alert.show("Please complete all fields!", "Oops!");
}
else
{
user = new User(txtEmail.text, txtPassword.text);
user.login(user);
var loginTimer:Timer = new Timer(1000, 1);
loginTimer.addEventListener(TimerEvent.TIMER_COMPLETE, dispatchLoginEvent);
loginTimer.start()
}
}
Когда я делаю user.login()
, он отправляет запрос с HTTPservice из моего внешнего класса AS. В обработчике события результата для этого httpservice я установил для публичной переменной значение true или false, в зависимости от того, правильно ли указаны учетные данные пользователя в БД.
Затем я использую метод получения, чтобы получить это логическое значение. Однако без таймера он всегда возвращает false, потому что мой код работает быстрее, чем обработчик результата события. Если это имеет смысл.
Так что я должен использовать таймер, чтобы остановить мое приложение на одну секунду ... Но серьезно, это не имеет смысла для меня. Должен быть лучший способ, нет?
Я могу предоставить больше кода, если кто-нибудь захочет помочь мне с этим. Спасибо.