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

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

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

Регистрация: Nov 2007
Сообщений: 256
Записей в блоге: 1
Отправить сообщение для BBOY Ильич с помощью ICQ
По умолчанию Проблема с AsBroadcaster

Добрый день! Помогите решить следующую проблему:

Имеется класс

Код AS1/AS2:
class utilities.Events 
{
 
	private static var _event:Object = new Object();
 
	public function Events() 
	{
		AsBroadcaster.initialize(_event);
	}
 
	public static function dispatchEvent(event:String, param:Object):Void
	{
		_event.broadcastMessage(event, param);
	}
 
	public static function addEventListener (type:String, func:Function):Void
	{
		var _listener:Object = new Object ();
		_listener[type] = func;
		_event.addListener(_listener);
	}
 
}

В другом классе я подписываюсь на событие:

Код AS1/AS2:
utilities.Events.addEventListener("event", myFunction);
Ну и наконец оправляю событие:
Код AS1/AS2:
utilities.Events.dispatchEvent("event");


В итоге - тишина, ничего не работает.
Спасибо.

Старый 01.03.2009, 17:59
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
А почему не EventDispatcher?

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

Регистрация: Nov 2007
Сообщений: 256
Записей в блоге: 1
Отправить сообщение для BBOY Ильич с помощью ICQ
Не нашел в хэлпе упоминания о нем


______________


Подписываюсь на событие я в классе, который прикрепил к мувиклипу через библиотеку:
Код AS1/AS2:
import utilities.Events;
 
class musicscreen.icons.IconBattery extends MovieClip
{
 
	public function IconBattery() 
	{
		Events.addEventListener("event", myFunc);
	}
 
	public function myFunc()
	{
		trace("event is dispatched");
	}
 
}
При этом, конструктор класса вызывается, но на событие мы не подписываемся. В чем проблема?


Последний раз редактировалось BBOY Ильич; 01.03.2009 в 18:37.
Старый 01.03.2009, 18:45
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Гм. Конструктор Events не вызывается, так как используются только его статические методы. Соответственно, броадкастер не инициализируется и ничего не происходит. переименуй констркутор в статический метод и вызывай его перед добавлением листенеров, либо введи флаг, который показывает инициализирован ли броадкастер, и инициализируй внутри Events при первом вызове addEventListener или dispatchEvent
__________________
4am is time to rock

Старый 01.03.2009, 18:46
BBOY Ильич вне форума Посмотреть профиль Отправить личное сообщение для BBOY Ильич Найти все сообщения от BBOY Ильич
  № 5  
Ответить с цитированием
BBOY Ильич
 
Аватар для BBOY Ильич

Регистрация: Nov 2007
Сообщений: 256
Записей в блоге: 1
Отправить сообщение для BBOY Ильич с помощью ICQ
DarkLight, спасибо, но я вызываю конструктор из главного класса, так что броадкастер инициализируется.

Проблема, я так понимаю, в том, что броадкастер инициализируется позже подписывания на событие...


_________


Цитата:
либо введи флаг, который показывает инициализирован ли броадкастер, и инициализируй внутри Events при первом вызове addEventListener или dispatchEvent
Спасибо! Все вышло


Последний раз редактировалось BBOY Ильич; 01.03.2009 в 18:49.
Старый 01.03.2009, 18:52
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 6  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
EventDispatcher в компонентах 2.0 описан. mx.events.EventDispatcher;. Такой диспатчер самому сделать тоже труда особого не составит >_>. К сожелению в нем нет ничего волшебного

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Проверь порядок вызова и проставлен ли импорт. Код работает.
__________________
4am is time to rock

Старый 01.03.2009, 19:40
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 8  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Ну да потому он и написал что все вышло )

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

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

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


 


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


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