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

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

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
По умолчанию вызов метода во всех экземплярах класса без использования цикла for

Добрый день, такой вопрос...

1. есть класс кнопки
2. на сцене лежит несколько экземпляров класса (меню)
3. В конструкторе класса подписываю кнопку на прослушивание пользовательского события(customEvent). Соответствующий обрабатывающий метод определен в классе кнопки.

При клике на кнопку (в методе обработки клика) пишу dispatchEvent(customEvent). Все хорошо, но мне нужно, чтобы реагировали все экземпляры класса, а в этом случае событие обрабатывается только кнопкой на которую я кликнул. Варианты с циклом for не рассматриваются.
Я делал это в AS2, но тут ничего не получается
__________________
freelance | Раздор

Старый 09.08.2007, 15:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Код можно?

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
вот:
Код:
package Classes{
	
	import flash.events.Event;

	
	public class  ConstructorEvents extends Event
	{
		public static const BTN_STATUS:String = "btnStatus";
          
		
        public function ConstructorEvents(type:String) {
             super(type);
        } 

      
	
}

Код:
package Classes{
	
	import flash.display.MovieClip;
	import flash.events.Event;
	import Classes.ConstructorEvents;
	

	public class  MenuButton extends MovieClip
	{
		
		public var event:ConstructorEvents = new ConstructorEvents(ConstructorEvents.BTN_STATUS);;
	

		
		public function MenuButton()
		{
			
			addEventListener(ConstructorEvents.BTN_STATUS,onStatus);
			
			addEventListener("click",onClick);
			addEventListener("rollOver",onRollOver);
			addEventListener("rollOut",onRollOut);	
			
		}
		
		private function onClick(evt:Event):void
		{
			dispatchEvent(event);
		}
		
		private function onRollOver(evt:Event):void
		{
		}
		
		private function onRollOut(evt:Event):void
		{
		}
	
		public function onStatus(evt:Event):void
		{
			trace(evt.target.name);

		}

	}
	
}
__________________
freelance | Раздор

Старый 09.08.2007, 16:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Для начала экземпляр ивента надо создавать в самом методе.
И нужно сделать класс-контейнер, который будет принимать события от кнопок и оповещать остальные.

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от __etc
Для начала экземпляр ивента надо создавать в самом методе.
Делал и так тоже. Что это меняет? Или это есть просто правильный подход?

Цитата:
Сообщение от __etc
И нужно сделать класс-контейнер, который будет принимать события от кнопок и оповещать остальные.
Пробовал что-то подобное, но видимо что-то не так..ладно, буду пытаться еще
__________________
freelance | Раздор

Старый 09.08.2007, 16:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от derhab
Делал и так тоже. Что это меняет? Или это есть просто правильный подход?
В целом это правильный подход.

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от __etc
И нужно сделать класс-контейнер, который будет принимать события от кнопок и оповещать остальные.
Сделал я это, но это не то, все равно при оповещении нужно перебрать все экземпляры кнопок, оповестить каждую индивидуально...
__________________
freelance | Раздор

Старый 09.08.2007, 17:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Зачем? Класс-контейнер является диспетчером.

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
а ты как хотел? можешь один раз в процессе сождания подписать все кнопки друг на друга... но помоемому будет просто полная лажа
__________________
33 коровы

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от __i
можешь один раз в процессе сождания подписать все кнопки друг на друга... но помоемому будет просто полная лажа
согласен
__________________
freelance | Раздор

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

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

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


 


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


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