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

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

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

Регистрация: Feb 2009
Сообщений: 141
По умолчанию Обратная маска и MouseEvent под ней

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

Обратная маска с помощью смешивания blendMode (mask.blendMode = BlandMode.LAYER и container.blendMode = BlandMode.ERASE) работает, но события мыши отсутствуют в открытой области.

Есть идеи?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
InteractivePNG, видимо.
__________________
Reality.getBounds(this);

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

Регистрация: Feb 2009
Сообщений: 141
Не спасает

Старый 20.05.2013, 01:22
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Мне бы такую скорость О__о

Как еще плеер может определить, прозрачно в этой точке или нет, кроме как через битмапдату и установленный порог? Быстродействие будет на нуле конечно, с битмапдатой на весь экран то, которую надо постоянно перерисовывать. Если бы только на клик, еще ладно. А если на MOUSE_MOVE или каждый кадр, плеер повесится.

Добавлено через 5 минут
Конечно, если маска статичная, то все не так страшно.
__________________
Reality.getBounds(this);

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

Регистрация: Feb 2009
Сообщений: 141
Починил

Код AS3:
mask.mouseEnabled = false;
Не понял, зачем каждый кадр что-то перерисовывать?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
И что, в затененных областях мышь не работает? )))
Вопрос свой перечитайте.
__________________
Reality.getBounds(this);

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

Регистрация: Feb 2009
Сообщений: 141
Не работает.
Да, маска статичная

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

Я долго искал причину бага и обнаружил лишний Bitmap на сцене в том же контейнере, куда добавляется объект с затемнителем и маской, Bitmap этот добавляется InteractivePNG, свойство visible = false. Что интересно, если удалить этот Bitmap со сцены, то это никак не поможет делу, а вот если его сдвинуть за пределы сцены, то маска снова работает как нужно в любом месте.

Выглядит этот костыль так:

Код AS3:
private function __removeBlackout():void
		{
			if (__dimmer && __dimmer.parent)
				this.removeChild(__dimmer);
 
			var pngBitmap:Bitmap = getChildByName("interactivePngHitMap") as Bitmap;
			if (pngBitmap)
				pngBitmap.x = 2000;
		}
Я даже не знаю, что я хочу спросить. Но может с этим постоянно доставляющем проблемы InteractivePNG можно что-то сделать? Мне не нравится этот костыль, но другого выхода я не вижу


Последний раз редактировалось Vreden; 20.05.2013 в 02:25.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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