Показать сообщение отдельно
Старый 05.02.2013, 23:49
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Можно "дослушивать" событие-эхо клика, приходящее от стейджа, и уже по нему вешать на стейдж слушатель следующего клика ("настоящий" обработчик для закрытия меню).
Останавливать событие в этом случае не надо, и остальные кнопки будут исправно его получать. С остановкой событий вообще надо быть осторожнее. Мало ли кому они будут интересны))

Код AS3:
		//...
			button.addEventListener(MouseEvent.CLICK, handlerButtonClick);
			super.addChild(button);
		}
 
		private function handlerEcho(event:MouseEvent):void 
		{
			stage.removeEventListener(MouseEvent.CLICK, handlerEcho);
			stage.addEventListener(MouseEvent.CLICK, handlerStageClick);
		}
 
		private function handlerButtonClick(event:MouseEvent):void 
		{
			_isOpen = !_isOpen; // флаг показа меню
			if (_isOpen)
			{
				stage.addEventListener(MouseEvent.CLICK, handlerEcho); // эхо от stage
				// показать меню
			}
			else
			{
				stage.removeEventListener(MouseEvent.CLICK, handlerStageClick);
				// скрыть меню
			}
		}
 
		private function handlerStageClick(event:MouseEvent):void 
		{
			stage.removeEventListener(MouseEvent.CLICK, handlerStageClick);
			if (_isOpen) // скрыть меню;
		}
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 06.02.2013 в 00:09. Причина: пример кода