![]() |
|
||||||||||
|
|||||
|
Цитата:
Вообще имеется проект с множеством подзон (курилка, сама игра, лобби и т.д.), и всем нужно иметь связь с сервером. Очевидно, что если и заводить одну модель, которую отдавать всем созданным контроллерам на прослушивание - нелогично, логичней отдавать ссылку на коннектор к серверу. Вообще как поступить? Из самых "трезвых решений" в голове - как раз передавать контроллерам ссылку на коннектор, который испускал бы события по типам - LobbyEvent, GameEvent и т.д., соответственно каждая часть игры ловила бы только свои события. Но не знаю, насколько это правильно.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Цитата:
|
|
||||||
|
Цитата:
Цитата:
Цитата:
Тогда: 1) Верно ли утверждение выше? 2) Насколько глубоко нужно делать парсинг? Прямо разжевать до вкуснятины, или достаточно минимальных действий - например, удалить служебную информацию у пакета (вроде его длины). 3) Цитата:
Цитата:
Как вижу я - коннектор после парсинга сообщения и определения принадлежности шлёт событие, если клиент - это слушатель этого события то не вижу преград подписать на него другие классы.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Цитата:
2) Парсинг происходит в коннекторе, на выходе получается команда с аргументами; 3) После вызова метода с именем команды, например. Аргументы метода сохраняются для дальнейшей обработки другими контроллерами. Цитата:
|
|
|||||
|
Арм... То есть самый главный контроллер, получает команду от коннектора с аргументами и дёргает соответствующие методы у дочерних контроллеров?
Как это реализуется? Динамическим доступом? Был бы очень рад минималистическому примеру :-[
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ничего он не дергает, он передает событие с привязанной командой всем желающим. Имя события составное, например command_enterAccount, где enterAccount — имя команды, он же метод основного контроллера (если есть).
|
|
|||||
|
Так, проясняется.
Сюжет: пришло событие, что человек вошел на аккаунт. Коннектор распарсил его и сообщил как то это главному контроллеру (как? Событием?). Главный контроллер выстрелил событие, содержащее команду, которую подхватили все подписчики на это событие и начали делать то, что им следует делать.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Да, клиентом, здорово. То есть вызываем паблик метод, хорошо.
А как обращаться к коннектору от маленьких контроллеров? Ссылку на главный контроллер я тяну к дочерним, но тоже большим (например чтобы сказать главному контроллеру что действие закончилось, меняй курилку на игру), поэтому напрямую вызываю метод у главного контроллера, он дёргает коннектор. UPD: на всякий спрошу, правильное ли у меня понимание клиентов: клиент - это объект, у которого приходящий запрос может дёрнуть какой-нибудь метод.
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 27.09.2010 в 23:22. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Можно и так, а можно оформить методом call, в котором первым аргументом идет имя отправляемой на сервер команды. Вариантов полно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|