С Новым годом! Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295

Взаимоотношение объектов без использования static

18.12.2013, 16:11. Показов 1192. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот моя проблема почему задал статику:
У меня Мейн класс, в нем создан екземпляр класса HERO и екземпляр класса Main_inventar.

ActionScript 3
1
2
public static var inv:Main_inventar=new Main_inventar(980,50); //создание инвентаря
public static var _hero:HERO; //герой
А статику сделал, ибо мне нада частый доступ к параметрам как Инвентаря так и Героя с разных классов.

Добавлено через 5 минут
Не сделав тот-же инвентарь паблик статик, как я могу к конкретному единственному екземпляру инвентаря обратится с класса героя?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2013, 16:11
Ответы с готовыми решениями:

Передача значения переменной в другую форму без использования static
Собсна проблема в том, что в Form1.cs у меня стоит клавиатурный хук, который отлавливает нажатия клавиш. При определенных условиях, моя...

Как задать взаимоотношение объектов друг-враг?
Добрый день! Есть различные типы объектов, но всех их можно условно объединить в четыре группы: Группа1, .., Группа4. Каждая группа...

Обращение к классу, без использования объектов
Добрый день! Создан класс: class classname { public: string s1; string s2; classname(string path) { ...

14
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
18.12.2013, 18:27
Через этот конкретный единственный экземпляр класса
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
18.12.2013, 18:48
Цитата Сообщение от Wells77 Посмотреть сообщение
частый доступ к параметрам как Инвентаря так и Героя с разных классов.
Частота доступа является основанием для объявления объектов статическими?
Статическими нужно создавать объекты, к которым необходим глобальный доступ. Например, у вас есть класс, который отвечает за воспроизведение звуков. Им могут пользоваться и NPC, и кнопка и чуть ли не каждый встречный. В этом случае - да, это может быть оправдано.
В вашем случае это скорее всего проблема проектирования программы.
Доступ к параметрам инвентаря и героя нужен из каких классов? Какие данные при этом вы получаете?
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
18.12.2013, 19:14  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
Доступ к параметрам инвентаря и героя нужен из каких классов? Какие данные при этом вы получаете?
Опишу 2 процесса.
1) Класс MyLevelContactListener - класс отвечающий за проверку столкновений разных тел между собой.
При контакте Героя с Коинтом (деньги, оружие и тд) класс уже обращается к статик инвентарю, дабы всунуть в его массив новый коинт (Как тут статик паблик обойти? Экземпляр этого инвентаря напомню создается в Мейне)

2) В инвентаре например вручную мышкой выбираю новый текущий предмет, который должен поместится в руку герою. Опять-же как без статик паблика _hero (создан также в 1 екземпляре в Мейне) я к нему обращусь и переприсвою параметр Героя?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
18.12.2013, 20:27
Цитата Сообщение от Wells77 Посмотреть сообщение
Как тут статик паблик обойти? Экземпляр этого инвентаря напомню создается в Мейне
передать ссылку на экземпляр
Как бы организовал я. Персонаж ходит, находит какие-то предметы. При этом в модель отправляется "сигнал" (его природа - отдельная тема), там меняются данные.
Допустим зашли в инвентарь, там что-то поменяли, опять же данные меняем в моделе.
При изменении модели она шлет событие о том, что произошло, все заинтересованные при этом меняют себя.
Про модель и пр. прочитайте про MVC
Только нужно понимать особенности флеша.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
18.12.2013, 22:54  [ТС]
MVC погрыз нормально. Разделение модели, вювера и контроллера понятно. Передавать ссылку на екземпляр - как я понимаю вязать складовые МВЦ в мейне этими ссылками. Типа создал в мейне экземпляр _hero, а потом ссылку на неё передать во все конструкторы классов, которые будут взаимодействовать с хиро? Это конечно один из вариантов. Единственное что отличает мой проект от мвц, так это то что я не делил каждый элемент на 3 складовые (не делал 3 отдкльных класса на тот-же инвентарь, героя, нпц и тд).

Вобщем в итоге вывод один - что-бы идин класс мог обращатся к параметрам экземпляра другого класса - обязательно передавать в конструктор ссылку на экземпляр?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
18.12.2013, 23:19
Цитата Сообщение от Wells77 Посмотреть сообщение
вязать складовые МВЦ в мейне этими ссылками
MVC в 1ю очередь - общая структура. Это один из паттернов. В мэйне обычно создается такая структура. В моих проектах обычно в мэйне содержится одна строчка кода
ActionScript 3
1
new Controller(this);
она располагается в обработчике добавления объекта на сцену. У вас может быть реализовано иначе.
Пока, наблюдая вашу задачу не вижу необходимости в "складировании".
_hero - у вас это модель или вью? Если вью, то ссылку на нее должны содержать только родители и/или контроллер.
Цитата Сообщение от Wells77 Посмотреть сообщение
Вобщем в итоге вывод один - что-бы идин класс мог обращатся к параметрам экземпляра другого класса - обязательно передавать в конструктор ссылку на экземпляр?
Нет. Во-первых, передавать ссылки на объекты не обязательно через конструктор. Во-вторых, если у 1-го объекта есть ссылка на 2й, то 2му не нужна ссылка на 1й. В-третьих, часть общения между объектами можно реализовать на основе событий.
1
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
18.12.2013, 23:37  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
_hero - у вас это модель или вью?
Модель. Вью у меня сложный мувик, ссылку на который я передаю в конструктор модели.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
19.12.2013, 00:28
Wells77, модель - данные. Зачем ей знать про существование каких-то там еще объектов? Вью что-то от модели необходимо - сама возьмет. А для модели это лишний груз, помимо данных знать что-то о представлении.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
19.12.2013, 11:00  [ТС]
Передаю модели ссылку на вью потому: когда даные в модели меняются, сразу диспатчу событие апдейта на вью по этой ссылке. Такой механизм во-всяком случае реализован в учебнике по MVC. Или как вы даете понять вьюверу что пора визуально менятся когда в модели даные поменялись?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
19.12.2013, 14:31
Цитата Сообщение от Wells77 Посмотреть сообщение
сразу диспатчу событие апдейта на вью по этой ссылке.
Может проще вью подписаться на модель? Ведь вью может быть сколь угодно много, а количество моделей стремится к 1.
Цитата Сообщение от Wells77 Посмотреть сообщение
Такой механизм во-всяком случае реализован в учебнике по MVC.
На сколько помню, там описывается 2 подхода.
Цитата Сообщение от Wells77 Посмотреть сообщение
как вы даете понять вьюверу что пора визуально менятся когда в модели даные поменялись?
Модель диспатчит событие об изменении. Все заинтересованные вью слушают. Таким образом в моделе не будет функционала по слежению за вью, подпиской и отпиской от событий. Собственно в моделе этого быть и не должно.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
19.12.2013, 14:43  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
На сколько помню, там описывается 2 подхода
Я учился по диску, где описан только пример реализации галереи по технологии MVC именно с передаванием ссылки в конструкторы. На досуге прочту еще способы.

Цитата Сообщение от TanaTiX Посмотреть сообщение
Модель диспатчит событие об изменении. Все заинтересованные вью слушают
Тоесть я правильно понял? Есть модель M1, никаких ссылок на вюверы в нем нету. Я в нужный момент в теле модели диспатчу:
ActionScript 3
1
dispatchEvent(new Event("MY_EVENT"));
А в теле класса вьювера обязательная ссылка на мою модель и слушаю я событие:
ActionScript 3
1
ссилка_на_модель.addEventListener("MY_EVENT",f_my_func);
Я правильно понял?
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
19.12.2013, 14:56
Цитата Сообщение от Wells77 Посмотреть сообщение
ссилка_на_модель.addEventListener("MY_EV ENT",f_my_func);
Если Вы почитаете про фазы захвата, цели и всплытие, то можете узнать, что если класс, вызывающий событие находится в иерархии отображение ниже (является потомком) класса, который это событие обрабатывает, то классу, который событие обрабатывает не нужна ссылка на класс, событие вызывающий, так как он может вешать слушатель непосредственно на себя и тогда в фазе всплытия (или же при выставленном флаге useCapture) данное событие будет обработано.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
19.12.2013, 15:16
Цитата Сообщение от Wells77 Посмотреть сообщение
Я правильно понял?
Да.

Theoryofgames, но ведь модель не находится (не должна) находиться в списке отображения, поэтому ваш пример не в тему.
1
19.12.2013, 16:45

Не по теме:

Цитата Сообщение от TanaTiX Посмотреть сообщение
но ведь модель не находится (не должна) находиться в списке отображения, поэтому ваш пример не в тему
Прошу прощения - не до конца в суть вопроса въехал

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2013, 16:45
Помогаю со студенческими работами здесь

Создание базы данных без использования объектов и подходов БД
Здравствуйте. Необходимо создать базу данных не используя объекты и подходы бд. В Delphi нужно использовать тип данных запись. А в...

Как повесить горячие клавиши для объектов (без использования амперсанда)?
Как повесить горячие клавиши для объектов (без использования амперсанд "&") ?

Создание игры "Викторина", без использования объектов
помогите, нужно создать игру типа викторина, без использования объектов. покидайте примеры, или посоветуйте, как ее реализовать... сделать...

Static - примеры использования
Никак не мойму, в каких случаях нужно использовать модификатор static. Единственное , что я понял, это то , что модификатор static...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru