Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Кастомная область срабатывания MouseEvent (http://www.flasher.ru/forum/showthread.php?t=155212)

Idon 29.04.2011 19:56

Кастомная область срабатывания MouseEvent
 
Добрый вечер,

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

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

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

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

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

Jewelz 29.04.2011 21:10

Цитата:

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

тоже так думал, в итоге контейнер Б я отрисовывал в битмапу bmpMask и делал вот такую проверку:

Код AS3:

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

координаты только подставьте нужные

Idon 29.04.2011 21:40

Спасибо, помогло)

Dukobpa3 30.04.2011 19:43

Я бы скроллрект заюзал (это если дырка прямоугольная)

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


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

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