![]() |
|
Модераторы: SoWa |
![]()
|
|
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: нет Всего: 372 |
Всем привет. Извиняюсь за не очень внятное название темы. В AS я совсем новичок, так что не пинаем
Имеется следующая проблема. Имеется флешка и имеется сервер. Во флешке есть некий класс отвечающий за удаленную работу с устройством , у него есть следующий метод геттер для свойства:
FState - некое свойство, отвечающее за состояние устройства. Все вроде бы хорошо, но! В GetState() я через Socket посылаю запрос о состоянии на сервак, так как сокет асинхронный, то ответ ко мне придет не очень даже понятно когда. Ответ приходит по событию сокета SOCKET_DATA. А свойство FState вернется из функции State сразу после того как функция GetState() закончит свое выполнение. Вешать флешку(графику) нельзя. А значение FState устанавливается только в самом обработчике события SOCKET_DATA, когда приходит ответ от сервера. Вот и вопрос: как сделать такое ожидание, чтобы return FState происходило только тогда когда придет ответ от сервера? Спасибо. ЗЫ: гуглить пытался, но не получается нормально подобрать запрос. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
вот там и сделать вызов метода, который поменяет значение FState, а также запустит прерванный процесс дальше. а графика между public function get State() { GetState(); } и обработчиком события SOCKET_DATA пускай выполняет какие-то промежуточные действия public function get State() { GetState(); метод_показать_песочные_часы(); } |
|||
|
||||
| THandle |
|
||||||||||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: нет Всего: 372 |
Проблема решилась следующим образом:
Создается свой тип события.
После чего из основного класса вызываем метод:
в Методе GetState() отсылаем запрос и устанавливаем листенер нашего события:
В обработке сокета onSocketData, обрабатываем ответ на наш запрос, меняем State и диспетчеризируем наше событие:
В обработчике события вызываем какую-то функцию в основном классе:
А там уже выполняем какие то действия, касающиеся этого FState:
|
||||||||||||
|
|||||||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | ActionScript 3 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |