Как получить переменную из PHP во Flex - PullRequest
0 голосов
/ 13 июля 2011

Хорошо - простой ответ для 99% из вас.У меня есть собственный класс 'Users ()'.В PHP у меня все значения заполнены правильно.Когда я захожу во Flash Builder и выполняю функцию тестирования, все данные возвращаются правильно.Тем не менее, когда я нажимаю кнопку и обращаюсь к свойству lastResult в CallResponder - в первый раз он получает значение NULL, а затем, если кнопка нажимается во второй раз, он вернет правильный результат.Какой шаг я пропускаю?У меня была та же проблема с чем-то похожим вчера вечером, и я ОЧЕНЬ разочарован - тем более, что я знаю, что это небольшая деталь, которую я пропускаю.

Так что просто для пояснения - допустим, есть кнопка с именем button1

Итак, обработчик нажатия button1: 1) Проверяет свойства ввода текста 2) Опрашивает сервер, если этот пользователь и пароль соответствуют 3)Если они это сделают - тогда я хочу, чтобы он взял всю эту конкретную информацию о пользователях и поместил ее в класс User.Опять же - когда я тестирую эту функцию / метод из Flash Builder, все значения возвращаются, как и должно быть.Просто при первом нажатии кнопки они возвращаются NULL ... при втором щелчке они заполняются нормально - IE-

Alert.show (currentUser.userFirstName);(Первый щелчок - NULL) Alert.show (currentUser.userFirstName);(Второй щелчок - «Джек»)

Любая помощь очень ценится !!!Я бьюсь над этим и знаю, что пропускаю какой-то простой, простой шаг.

Спасибо всем, кто нашел время, чтобы помочь заранее!

-CS

1 Ответ

1 голос
/ 13 июля 2011

Чтобы ответить на этот вопрос просто, Flex асинхронен ... это означает, что код, который вы выполнили в следующей строке, может произойти до того, как ваш код PHP будет готов. Последний результат еще не заполнен, когда вы нажали кнопку в первый раз. Нажатие кнопки происходит мгновенно, но для возврата данных требуется несколько секунд. Аналогично, при втором нажатии на кнопку вы получите информацию о последних пользователях , а не о текущих !!!

Вам нужно подождать, пока данные вернутся, прежде чем что-либо предпринимать. Для этого добавьте прослушиватель событий в ваш сервис. Это называется обработчиком результата. Есть много хороших примеров этого.

В обработчике, продолжайте и предупреждайте ваше всплывающее окно с помощью lastResult ... или просто, event.result. Должен иметь то, что вы ищете.

...