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

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

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

Регистрация: Aug 2013
Сообщений: 73
По умолчанию Взаимодействие двух классов представления.

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

Код AS3:
public class HeroView extends Sprite {
public function HerowView( ) {
   // код конструктора
}
}
А второй отображает предметы магазине и остальной интерфейс игры:
Код AS3:
public class InterfaceView extends Sprite {
public function InterfaceView( ) {
   // код конструктора
}
}
Так вот, как наиболее простым способом взаимодействовать между этими классами, если они оба являются классами представления.

Можно написать весь код в одном классе, тогда проблем не возникнет, но есть же ещё варианты?

Наверное нужно читать MVC...

Старый 27.12.2013, 18:40
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Наверное нужно читать MVC...
Да, при чем не один день.. На форуме посмотрите в разделе "статьи", и поищите поиском по этому разделу "mvc". В последних темах так же есть ссылки на книги. Месяц чтения с утра до ночи Вам обеспечен

Старый 27.12.2013, 18:55
dendead вне форума Посмотреть профиль Отправить личное сообщение для dendead Найти все сообщения от dendead
  № 3  
Ответить с цитированием
dendead

Регистрация: Aug 2013
Сообщений: 73
По книжке Мука имею общее представление о MVC, но сейчас запутался в своём же коде.

Старый 27.12.2013, 19:42
shmaser вне форума Посмотреть профиль Отправить личное сообщение для shmaser Найти все сообщения от shmaser
  № 4  
Ответить с цитированием
shmaser
 
Аватар для shmaser

Регистрация: Aug 2010
Сообщений: 22
Паттерн Mediator вполне решил бы проблему связывания объектов одного уровня в отношении "многие ко многим".
http://ru.wikipedia.org/wiki/Посредн...роектирования))

Старый 27.12.2013, 20:25
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 5  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Медиатор, то оно конечно да.
Но только не могу сказать, что герой и магазин - это объекты одного уровня.
Можно чуть больше подробностей? Какие задачи у героя. Что такое герой в данном контексте. Что такое магазин в данном контексте?
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 27.12.2013, 20:31
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 6  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
скорее всего должны общаться контроллеры героя и магазина.

Старый 27.12.2013, 20:34
dendead вне форума Посмотреть профиль Отправить личное сообщение для dendead Найти все сообщения от dendead
  № 7  
Ответить с цитированием
dendead

Регистрация: Aug 2013
Сообщений: 73
Игра представляет из себя подобие тамагочи. В классе "герой" находится код для отображения питомца. Добавление частей тела с помощью addChild и и слушатели событий на действия игрока. В классе "интерфейс" находятся продукты, которыми можно покормить героя и элементы интерфейса (окна, панели и т.д.). Здесь также использую addChild для добавления объектов на сцену и некоторые слушатели для реакции на действия.

Старый 27.12.2013, 20:40
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 8  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
В целом питомец и магазин это совсем разные модули.
Если говорить об мвц то питомец это будет свой контроллер-модель-вью. магазин - своя такая же триада.

Но например контроллер магазина может иметь доступ к модели питомца.
Мы купили в магазине нечто, оно сразу попало в модель питомца, модель питомца сообщила об этом. Вью питомца услышала это сообщение и перерисовалась.

Смешивать два логически разных модуля в один не ок.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 27.12.2013, 20:45
shmaser вне форума Посмотреть профиль Отправить личное сообщение для shmaser Найти все сообщения от shmaser
  № 9  
Ответить с цитированием
shmaser
 
Аватар для shmaser

Регистрация: Aug 2010
Сообщений: 22
Dukobpa3,
Цитата:
Но только не могу сказать, что герой и магазин - это объекты одного уровня.
Можно чуть больше подробностей? Какие задачи у героя. Что такое герой в данном контексте. Что такое магазин в данном контексте?
Автор указал именно вьюшки героя и магазина. В вашей же статье:
Цитата:
Если брать ближе к флешу, то медиатор часто используют именно со стороны вью.
В медиаторе инкапсулируют несколько вьюх. Медиатор является посредником в общении между этими вью. Каждая из вью видит только свой медиатор, и может отдать/получить данные в/из него.
содержится ответ на вопрос автора:
Цитата:
как наиболее простым способом взаимодействовать между этими классами, если они оба являются классами представления?

Старый 27.12.2013, 20:49
dendead вне форума Посмотреть профиль Отправить личное сообщение для dendead Найти все сообщения от dendead
  № 10  
Ответить с цитированием
dendead

Регистрация: Aug 2013
Сообщений: 73
У меня основная сложность с классом контроллера. Дальше всё более менее понятно. Например в модели вызывается dispatchEvent, а в вью слушатель принимает этот вызов и рисует отображаемый объект. Что в данном случае должно находится в контроллере?

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

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

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


 


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


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