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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Jan 2001
Адрес: Украина
Сообщений: 284
По умолчанию Помогите наладить обмен сообщениями

Требуется организовать диспетчер сообщений
для группы классов(храняться в своих as-файлах,по
linkage подключаются символы-изображения).
Диспечер должен принимать сообщения,генерируемые
членами классов и сам определять реакцию на все поступающие
сообщения.

Пример:
class obj1 Extends Moviclip { var listEvents:array ...}
class obj2 Extends Moviclip { var listEvents:array ...}
class MyDisp {} //---Хорошо бы, но как?

Obj1 в некоторое время генерирует сообшение
obj1.sendmessage("onTop");
Диспетчер поймал это сообщение и передал дальше по своему алгоритму.
obj2 в свою очередь вызывает метод-реакцию на сообщение "onTop"
obj2.onTop();

Пробовал использовать EventDispatcher, но ничего не выходит-
попадает в бесконечный цикл и виснит.Постоянные ошибки с требованием
статического определения методов вызова (sendmessage например).
Надо как то классы подключить к EventDispatcher, но как?
Oт AsBroadCaster -a отказался,ведь уже время AS2.
Кто нибудь подсказать может?

Старый 12.07.2004, 15:09
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 2  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
По мне, если задача достаточно четко сформулирована,
то дело совсем за малым - за реализацией

Примени какой нибудь паттерн - observer к примеру...

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

Регистрация: Jan 2001
Адрес: Украина
Сообщений: 284
По умолчанию Спасибо за совет,но задачу это не решает

У меня такое ощущение что обмен сообшениями в as2 закрытая тема для обсуждения.Стараюсь регулярно посты просматривать,но подобные вопросы мало у кого отклик вызывают.Или все такие гуру, что "проехали" давно эту тему?

Старый 12.07.2004, 15:31
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 4  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Честно говоря, у меня не было необходимости в создании специального (собственного) класса для работы с сообщениями,

я использовал старый-добрый подход из ASBroadcaster, и добавлял к этому подходу некий адаптер, который эти сообщения "фильтрует"...

например, класс который рассылает сообщения -

есть три поля -

Код:
private var broadcastMessage:Function;
public var addListener:Function;
public var removeListener:Function;
в конструкторе класса вызываю

Код:
private function ClassName()
{
	mx.transitions.BroadcasterMX.initialize(this);
}
под конкретную задачу создаю класс ЗадачаDispatcher или ЗадачаAdapter и подписываю его на события из нужных классов.

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

this.broadcastMessage("onEvent", this, param);

Адаптер обрабатывает сообщения и пересылает куда нужно, если нужно

схема меня вполне устраивает.

Замечу что ко всему этому я часто добавляю конвейер, но это уже другая история....


Последний раз редактировалось john; 12.07.2004 в 15:35.
Старый 12.07.2004, 15:38
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 5  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Затабуированная тема : )))

Просмотри первую страницу вопросов, заданных в этом разделе и подумай, может ли кто-ньть из спрашивающих ответить на твой вопрос? Вряд ли. Теперь остаются те, кто отвечают. Их можно условно разделить по половому признаку: на тех, кто уже решил задачу, подобную твоей, и тех, кто ее может решить, но еще не решали. Для первых это решение - "ноу хау" И бесплатно они его тебе не отдадут. А вторые, скажи, с какой радости они будут за тебя решать? Опять же из рассчета "бесплатно" : )))

Вывод: написать алгоритм самому. Начать с блок-схемы, а потом аккуратнейшим образом реализовать. Будет быстрее и дешевле.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 12.07.2004, 15:50
Anddrey вне форума Посмотреть профиль Отправить личное сообщение для Anddrey Найти все сообщения от Anddrey
  № 6  
Anddrey

Регистрация: Jan 2001
Адрес: Украина
Сообщений: 284
По умолчанию ->

Про твой конвеер я читал и пытался разобраться.Но все как то сложно да и трудно укладывается в голове.Все эти aplay..бр
Есть замечательная парадигма -ООП.На ней крутится Макромедия.Понять как "у них" это организовано и использовать - мне кажеться так надо действовать.
Вот раньше,помню запал я на smalltalk и мыслить одно время стал по другому.
Бродкаст тут не подходит потому что посути это широковещательная станция(как радио) в одном направлении.
При его использовании нет взаимодействия экземпляров классов.Они только слушают и выполняют.

Старый 12.07.2004, 16:55
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 7  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
В чём собственно проблема то? Создаешь статические методы и члены и через них делаешь чего там тебе надо. Если это то, как я понял...

Старый 12.07.2004, 17:04
Anddrey вне форума Посмотреть профиль Отправить личное сообщение для Anddrey Найти все сообщения от Anddrey
  № 8  
Anddrey

Регистрация: Jan 2001
Адрес: Украина
Сообщений: 284
По умолчанию ->

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

Старый 12.07.2004, 18:09
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 9  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
Так ведь ты можешь в качестве аргумента методу передавать функцию, которую надо вызывать

Старый 12.07.2004, 18:42
Anddrey вне форума Посмотреть профиль Отправить личное сообщение для Anddrey Найти все сообщения от Anddrey
  № 10  
Anddrey

Регистрация: Jan 2001
Адрес: Украина
Сообщений: 284
По умолчанию ->

Тогда функция,которую я буду вызывать после обработки тоже должна быть статической и это значить, что ее надо определять в каждом классе!.Таким образом все идет к определению некого "абстрактного" для классов кода.Патерны,которые предлагает jhon вещь интересная,но для as2 я про такие не слышал.

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

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

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


 


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


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