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

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

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

Регистрация: May 2010
Адрес: Киев
Сообщений: 62
Question Помогите разобраться с пользовательскими событиями

Ни как не могу понять как сделать следующие.
У меня есть класс GameEvent, который расширяет EventDispatcher. Такая структура

Код AS3:
 
public class GameEvent extends EventDispatcher {
 
		public static const GAME_OVER: String = 'gameOver';
 
		public function GameEvent() {
 
		};
 
		public function dispatchGameOver(): void {
			trace('GameEvent.dispatch: GameEvent dispatch');
 
			dispatchEvent(new Event(GameEvent.GAME_OVER))
		};
 
	}
Чего хочется - так это чтобы в нескольких классах прописать

Код AS3:
 
addEventListener(GameEvent.GAME_OVER, gameOver);
и где-нибудь вызывать
Код AS3:
dispatchGameOver()
и чтобы все приемники этого события срабатывали.
Подскажите возможно-ли это сделать? Пока мои попытки не удачны.
__________________
trace("Hello, world!");

Старый 18.07.2011, 18:07
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
На событие будут реагировать только те объекты, которые его и отправили.
Т.е. в данном случае, это должны быть экземпляры класса GameEvent
Если где-то в коде будут соданы его экземпляры и к ним добавлен слушатель этого события, то эти экземпляры на него смогут реагировать

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

Регистрация: May 2010
Адрес: Киев
Сообщений: 62
Так у меня получается. Просто я хотел бы уточнить есть ли способ, чтобы мое события получил экземпляр любого класса, в котором есть слушатели моего события?
__________________
trace("Hello, world!");

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

Регистрация: May 2010
Сообщений: 543
Пользовательское событие, как и обычное, получит любой подписавшийся на него объект
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 18.07.2011, 18:15
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Можно сделать например так, передать в этот класс ссылку на Stage и отправлять событие от имени stage. А в интересующихся классах добавлять слушатель так же к сцене. Я бы сделал так.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от goodguy Посмотреть сообщение
Можно сделать например так, передать в этот класс ссылку на Stage и отправлять событие от имени stage. А в интересующихся классах добавлять слушатель так же к сцене. Я бы сделал так.
Вы, сэр, сторонник хаоса.

Старый 18.07.2011, 18:24
OnEg1n вне форума Посмотреть профиль Отправить личное сообщение для OnEg1n Найти все сообщения от OnEg1n
  № 7  
Ответить с цитированием
OnEg1n
 
Аватар для OnEg1n

Регистрация: May 2010
Адрес: Киев
Сообщений: 62
да, действительно верно...я сделал так. В главном класса создал статическое свойство, в которое записал экземпляр класса GameEvent. И потом через статическую переменную, привязал слушателей где мне надо.
Но по сути, это практически то же самое, что Вы, goodguy, и предложили
__________________
trace("Hello, world!");

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
У меня есть класс GameEvent, который расширяет EventDispatcher
Вообще обычно события наследуются от класса Event, а те, кто их отправляют - от класса EventDispatcher. Можно попробовать использовать статический EventDispatcher (создать класс с публичным статическим геттером на EventDispatcher) и слушать его события

Цитата:
На событие будут реагировать только те объекты, которые его и отправили.
Это не так.
__________________
...вселенская грусть

Старый 18.07.2011, 18:31
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от Bgg Посмотреть сообщение
Вы, сэр, сторонник хаоса.
Когда встречаю подобные высказывания, всегда вспоминаю фразу из фильма Деспердо "не говори мне кто я, и я не скажу куда тебе идти" )

Я сторонник того, чтобы делать так, как удобно. Хотя лично у меня никогда не возникало необходмости отправлять какое-то событие таким образом. У меня пользовательские события всегда ловятся теми же экземплярами, которые их отправили.

Цитата:
Это не так.
Отбросим бабблинг. Где еще это не так?


Последний раз редактировалось goodguy; 18.07.2011 в 18:34.
Старый 18.07.2011, 18:36
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 10  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
ну ну
Побольше уверенности, goodguy. Вы не согласны? - обоснуйте Ваш бред.
__________________
...вселенская грусть

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

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

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


 


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


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