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

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

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

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


Последний раз редактировалось etc; 09.08.2007 в 18:03.
Старый 09.08.2007, 18:43
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 12  
Ответить с цитированием
derhab
 
Аватар для derhab

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

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

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

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
кнопки лежат в MovieClip-e

рут расширяет спрайт, в нем контейнер - мувиклип, а кнопки в контейнере
__________________
freelance | Раздор

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

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

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

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

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

       public class  ConstructorContainer extends Sprite
	{
		private var event:ConstructorEvents;
	
	       public function ConstructorContainer()
		{
		   event = new ConstructorEvents(ConstructorEvents.BROADCAST_ALL);;
		  addEventListener(ConstructorEvents.BTN_STATUS, broadcastMess);

		}

		public function broadcastMess(evt:Event)
		{
			//обращаясь конкретно к экземплярам я могу передать событие, но нельзя ли передать всем сразу?
			 this.startAgain.dispatchEvent(event)
			 this.changeBasic.dispatchEvent(event)
		}
		

	}
	
   }
}
что то не так, видимо, я чего то не догоняю...
__________________
freelance | Раздор

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

Регистрация: Sep 2002
Сообщений: 30,784
Код:
package Classes{
	
	import flash.events.Event;
	import Classes.ConstructorEvents;
	import flash.display.Sprite;

       public class  ConstructorContainer extends Sprite {

	       public function ConstructorContainer() {
		  addEventListener(ConstructorEvents.BTN_STATUS, broadcastMess);
                  for (var i:uint = 0;i < this.numChildren;i++) {
                       var child:MenuButton = this.getChildAt(i) as MenuButton;
                       if (child) {
                           child.addEventListener('broadcastAll', child.broadcastAllHandler);
                       }
                  }
		}

		public function broadcastMess(evt:Event)
		{
			dispatchEvent(new ConstructorEvent('broadcastAll'));
		}
		

	}
	
   }
}
Код:
package Classes{
	
	import flash.events.Event;

	
	public class  ConstructorEvent extends Event
	{
		public static const BTN_STATUS:String = "btnStatus";
                public static const BROADCAST_ALL:String = 'broadcastAll';
          
		public var menuButton:MenuButton;
        public function ConstructorEvent (type:String, bubbles:Boolean = false) {
             super(type, bubbles);
        } 

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

	public class  MenuButton extends MovieClip
	{
		
                 public function MenuButton()
		{
			
			addEventListener(ConstructorEvents.BTN_STATUS,onStatus);
			
			addEventListener("click",onClick);
			addEventListener("rollOver",onRollOver);
			addEventListener("rollOut",onRollOut);	
			
		}
		
		private function onClick(evt:Event):void
		{
                        var event:ConstructorEvent = new ConstructorEvent(ConstructorEvent.BTN_STATUS, true);
			dispatchEvent(event);
		}
		
		private function onRollOver(evt:Event):void
		{
		}
		
		private function onRollOut(evt:Event):void
		{
		}
	
		public function onStatus(evt:Event):void
		{
			trace(evt.target.name);

		}

                public function broadcastAllHandler(event:ConstructorEvent):void {
                    if (event.menuButton != this) {
                           trace(this.name);
                    }
                }

	}
	
}

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

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

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

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

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

блогер
Регистрация: Nov 2006
Адрес: Минск
Сообщений: 370
Записей в блоге: 6
Отправить сообщение для vapes с помощью ICQ Отправить сообщение для vapes с помощью Skype™
контейнер слушает кнопки, кнопки слушают контейнер - все оч просто

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

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

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


 


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


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