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

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

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

Регистрация: Sep 2010
Сообщений: 42
По умолчанию Как правильно организовать транспорт данных

Привет, возник такой вопрос: как правильно организовать транспорт данных во флешке?
Допустим, у меня есть основной класс, в нем я создаю экземпляр класса Player, в котором держу некие данные, деньги, здоровье и тд.
Также, есть экземпляр класса Castle. В нем есть экземпляр класса Treasury. Каким образом мне получить из класса Treasure деньги игрока, которые лежат в классе Player?

Если решать в лоб, то получается дурацкая конструкция типа такой:
_player = new Player();
_castle = new Castle(_player);
_treasury = new Treasury(_player);

То есть я передаю ссылку на экземпляр Player из раза в раз по цепочке к самому дальнему классу. И уже в нем я каким-то образом дергаю деньги. Подозреваю, что это неправильно. В какую сторону копать?

Старый 07.07.2011, 17:38
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
можно сделать централизованное хранилище данных, к которому будет иметь доступ как Castle так и Player
__________________
low +

Старый 07.07.2011, 17:41
randomnoob вне форума Посмотреть профиль Отправить личное сообщение для randomnoob Найти все сообщения от randomnoob
  № 3  
Ответить с цитированием
randomnoob

Регистрация: Sep 2010
Сообщений: 42
Цитата:
Сообщение от Jewelz Посмотреть сообщение
можно сделать централизованное хранилище данных, к которому будет иметь доступ как Castle так и Player
А как это лучше сделать? Я так понимаю, что ссылку на это хранилище все равно надо будет пересылать из класса в класс, не?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
В какую сторону копать?
В обратную
Код AS3:
_player:IPlayer = new Player();
_castle:ICastle = new Castle();
_castle.treasury = new Treasury(1000);
...
var treasury = _castle.treasury;
if (treasury)
{
   _player.money += treasury.value;
}
Добавлено через 1 минуту
P.S. Это отношения, а не реализация.

Добавлено через 5 минут
Цитата:
Каким образом мне получить из класса Treasure деньги игрока, которые лежат в классе Player?
Зачем сокровищу знать, сколько денег у игрока?
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 07.07.2011 в 17:46.
Старый 07.07.2011, 17:50
randomnoob вне форума Посмотреть профиль Отправить личное сообщение для randomnoob Найти все сообщения от randomnoob
  № 5  
Ответить с цитированием
randomnoob

Регистрация: Sep 2010
Сообщений: 42
Все равно немного не пойму. Допустим, у меня куча информации лежит в Player. Деньги, слава, девочки. И эту информацию надо дергать из множества далеких классов. Получается, что для каждого кусочка надо выстраивать такие отношения?

Старый 07.07.2011, 17:56
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Сейчас все опять скатится к MVC.

Добавлено через 4 минуты
Представьте себе почту. У вас есть адресат — Player. Вы ему можете послать деньги, славу, подарить девочку (бандеролью ). И вам не важно, где находитесь вы и где Player. Это знает почта, а вы знаете где находится почта. Вот и получается, что вместо того, что бы Player каждый раз приходил к вам, вы идете на почту и отправляете ему бандерольку, а почта уже доставляет эту бандерольку Player'у.
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 07.07.2011 в 18:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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