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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.08.2011, 21:49
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 1  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
По умолчанию как быть с подобной логикой?

исполняется некий код. на определенном этапе надо получить данные ввода со стороны пользователя(скажем, он должен нажать кропку)

.......
некий код
..............
ждем пока пользователь даст ответ!
............
продолжение

Но! нет ведь способа остановить код пока не будет ответа. более того, когда он будет сработает УЖЕ СОВСЕМ ДРУГАЯ ФУНКЦИЯ - обработчкик события этой кнопки.

В итоге - совсем не понимаю - как на AS3 вменяемо не теряя логики ООП - исполнять код который подразумевает интерактивности

Старый 28.08.2011, 21:54
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
А вам ответа в этой теме было не достаточно?
http://www.flasher.ru/forum/showthread.php?t=165951

Код можно вообще не исполнять, пока не произойдет какое-то событие.

Старый 28.08.2011, 22:17
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 3  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
эта тема ПО ДРУГОМУ вопросу, не путайте! я здесь как раз написал - логика событий ясна. нельзя ли как то выполнить логику как в примере?

Старый 28.08.2011, 22:24
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
По-другому никак, только костылями. АС3 не умеет останавливаться и дожидаться какого-то действия

Старый 28.08.2011, 22:28
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 5  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
хм тогда вот такой вопрос. уже не связанный ни с каким синтаксисом.
философия ООП - написать класс который, как черный ящик выполнит ВСЕ действия.
и вот, к примеру - я запустил метод(функцию) класса который реализует часть игры. И тогда, любая необходимость ждать ответа пользователя делает НЕВОЗМОЖНЫМ работу этого класса как самодостаточной части - потому что событие внутри класса не может возвращася к исполнению главного кода подобно подпрограмме. оно исполнилось и -все. и получается любое действие пользователя будет прерывать неизбежно главный код с концами(?

Старый 28.08.2011, 22:32
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Во флеше один поток. Ассинхронно работают только лоадеры на текущий момент.
То, что Вы хотите сделать, решается простой опорой на событийную модель.
Советую прочитать, как работает AVM2.
__________________
тут я

Старый 28.08.2011, 22:38
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 7  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
а не подскажете ли в двух словах - логику событийной модели? то есть самую суть, код никакой разумеется не нужен...

Старый 28.08.2011, 22:51
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Что-то делаем и доходим до какого-то момента, когда нужно ждать чего-то. Это что-то может наступить невесть когда, но если наступит, то код должен выполниться дальше. Мы разбиваем один метод на два, между которыми подписываемся на событие, по которому запускаем второй метод (это уже хендлер будет).

Теперь на примере: на экран раз в 100 миллисекунд выводятся по буквам какие-то слова (эффект консоли, который любят делать в фильмах). Он доходит до какой-то точки, когда должен остановиться и ждать ввода пользователя (просто энтер, например). Мы подписываемся на событие клавиатуры по началу ожидания. Когда получаем "энтер", выполняем эффект дальше. В коде это будет выглядеть как вызов второго метода с продолжением эффекта (и отпиской от события клавиатуры).
__________________
тут я

Старый 28.08.2011, 23:12
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 9  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
я понял. спасибо. так и предполагал. но это - жутко неудобно имхо.

Старый 28.08.2011, 23:36
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 10  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Чего неудобного-то?

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

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

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


 


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


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