Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.06.2008, 18:18
vaplat вне форума Посмотреть профиль Отправить личное сообщение для vaplat Найти все сообщения от vaplat
  № 1  
Ответить с цитированием
vaplat

Регистрация: Jun 2008
Сообщений: 3
По умолчанию Псевдосинхронность

Есть метод на AS в середине, которого при определенных условиях вызывается серверный код(с помощью RemoteObject). Необходимо дождатся получения данных от сервера и в зависимости от результатов и выполнить дальше различный код.
Как бы обеспечить "синхронность" выполнения кода или хотя-бы заморозить текущий поток до обработки ответа сервера?

Старый 09.06.2008, 18:21
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 2  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Раздели первоначальную функцию на 2. До наступления условия обращения к серверу и после.

Старый 09.06.2008, 22:47
vaplat вне форума Посмотреть профиль Отправить личное сообщение для vaplat Найти все сообщения от vaplat
  № 3  
Ответить с цитированием
vaplat

Регистрация: Jun 2008
Сообщений: 3
Цитата:
Сообщение от †‡Paladin‡† Посмотреть сообщение
Раздели первоначальную функцию на 2. До наступления условия обращения к серверу и после.
В общем случае такое разделение достаточно сложно, т.к. часто есть условный оператор в разных ветках которого вызываются разные серверные методы, а потом еще общий код.
Код конвертируется из другого языка и общий объём достаточно велик. Потому хотелось бы найти решение именно с "синхронностью"(если оно есть), что-бы сконвертить почти 1-в-1, а не генерить несколько методов вместо одного.

Старый 10.06.2008, 15:55
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
А как ты себе это представляешь?
Код выполнился и если за время выполнения не успели получить - то ваши проблемы?
Если ты про Ас2 где можно было написать что то вроде
Код:
loader.onLoad=function(){}
и вот тебе все в 1 методе - то это было 2 метода.
Вобщем, мой ответ про синхронность - нету. (я ещё не ас3 гуру, поэтому могу быть не прав)

Старый 10.06.2008, 16:28
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Уже были подобные темы. Сначала WindWalker вел бой на этом форуме. Но силы были не равны и он переключился на gotoandflash.ru, но и там был "бит".
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.06.2008, 16:40
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 6  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Цитата:
Сообщение от vaplat Посмотреть сообщение
В общем случае такое разделение достаточно сложно, т.к. часто есть условный оператор в разных ветках которого вызываются разные серверные методы, а потом еще общий код.
Код конвертируется из другого языка и общий объём достаточно велик. Потому хотелось бы найти решение именно с "синхронностью"(если оно есть), что-бы сконвертить почти 1-в-1, а не генерить несколько методов вместо одного.
Решения с "синхронностью" нет (ну или я о нем не знаю). Посмотрите как это было реализовано в оригинальных скриптах. Попробуйте перенести серверный функционал во флэш если это возможно. Можно попробовать обойти ограничения использовав какой-нибудь флаг например при наступлении if`a. Тогда остальной код выполнится, но приложение будет знать что это неправильный результат и дождется ответа с сервера и пересчитает. Вобщим костылей можно много придумать.

Старый 11.06.2008, 01:27
vaplat вне форума Посмотреть профиль Отправить личное сообщение для vaplat Найти все сообщения от vaplat
  № 7  
Ответить с цитированием
vaplat

Регистрация: Jun 2008
Сообщений: 3
Хм...
Мне тут пришла идея такая - использовать ExtenalInterface в котором с помощью XMLHttp звать какой-то WebService. Внутри сервиса просто ставить Sleep, что-бы ожидание ответа было существенным.
Ну и соответственно в оригинальном коде дергать WebService в цикле, пока какое-то поле класса(в которое складывать ответ от оригинального несинхронного вызова) не станет непустым.
Как думаете прокатит или вызов ExtenalInterface-а заморозит и обработчик повешеный на завершение вызова RemoteObject?

Старый 11.06.2008, 01:47
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от vaplat Посмотреть сообщение
Ну и соответственно в оригинальном коде дергать WebService в цикле, пока какое-то поле класса
Хотите повесить флеш?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.