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

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

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

Регистрация: Sep 2009
Сообщений: 65
По умолчанию Кастомная область срабатывания MouseEvent

Добрый вечер,

Есть контейнер А, с кучей компонентов, многие из которых слушают события мыши.

Необходимо динамически установить некую область, в которой события мыши будут работать. Если указатель мыши находится вне пределов этой области, то компоненты в контейнере А не должны реагировать на события мыши.

Допустим, на контейнер А поверх накладывается полностью темная область(контейнер Б), в которой вырезана дырка. Вот в этой дырке видимые компоненты контейнера А и должны реагировать.

Думал почему-то, что если в контейнере Б вырезать BlendMode.ERASE нужную область, то он станет "пропускать" события мыши "насквозь", однако это не так.

Есть ли какой-нибудь простой способ решить такую задачу, не трогая компоненты контейнера А?

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Цитата:
Сообщение от Idon Посмотреть сообщение
Думал почему-то, что если в контейнере Б вырезать BlendMode.ERASE нужную область, то он станет "пропускать" события мыши "насквозь", однако это не так.
тоже так думал, в итоге контейнер Б я отрисовывал в битмапу bmpMask и делал вот такую проверку:

Код AS3:
//если мы находимся не в "дырке", то контейнер перекрывает мышиные события собой, иначе пропускает их
if (bmpMask.bitmapData && bmpMask.bitmapData.getPixel32(stage.mouseX, stage.mouseY) == 0)
{
	contB.mouseEnabled = false;
}else {
	contB.mouseEnabled = true;
}
координаты только подставьте нужные
__________________
low +

Старый 29.04.2011, 21:40
Idon вне форума Посмотреть профиль Отправить личное сообщение для Idon Найти все сообщения от Idon
  № 3  
Ответить с цитированием
Idon

Регистрация: Sep 2009
Сообщений: 65
Спасибо, помогло)


Последний раз редактировалось Idon; 29.04.2011 в 21:53.
Старый 30.04.2011, 19:43
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Я бы скроллрект заюзал (это если дырка прямоугольная)

черный фон, поверху объект-контейнер ограниченный скроллректом. Убъем сразу двух зайцев и скроем лишнее с екрана и мышь не будет трогать то что скрыто.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

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

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


 


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


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