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

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

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

Регистрация: Nov 2009
Сообщений: 56
По умолчанию слушатель мыши через альфу png картинки

как сделать слушатель мыши для объекта(sprite или MovieClip) , который "проходил" бы через альфа канал png картинки ,лежащей над этим объектом?
Поиском ничего не нашел...

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
А просто отключить события мыши для картинки?

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

Регистрация: Aug 2003
Адрес: Санкт-Петербург
Сообщений: 246
Отправить сообщение для Crash512 с помощью Skype™
Ага... Кури "mouseEnabled" и "mouseChildren"...

Старый 19.04.2010, 23:44
N1KY вне форума Посмотреть профиль Отправить личное сообщение для N1KY Найти все сообщения от N1KY
  № 4  
Ответить с цитированием
N1KY

Регистрация: Dec 2008
Сообщений: 45
mouseEnabled=false игнорит все события мыши для объекта, вне зависимости, есть там видимые части или нет.. т.е. если для картинки с прозрачными областями сделать mouseEnabled=false, то объект лежащей под картинкой будет реагировать на мышку так, как будто картинки над ним нет вообще, и без разницы, есть ли там прозрачные области или нет.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
BitmapData#hitTest
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 20.04.2010, 11:12
markII вне форума Посмотреть профиль Отправить личное сообщение для markII Найти все сообщения от markII
  № 6  
Ответить с цитированием
markII

Регистрация: Nov 2009
Сообщений: 56
да, согласен-эти методы подходят, но если у меня на этом объекте(который лежит сверху) тоже весят слушатели события мыши, то как быть?

Добавлено через 4 минуты
Цитата:
BitmapData#hitTest
а как этот метод использовать? Он должен проверяться объектом, который лежит сверху(с альфой)? или я чего то не понимаю...можно поподробнее?

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Цитата:
Сообщение от markII Посмотреть сообщение
да, согласен-эти методы подходят, но если у меня на этом объекте(который лежит сверху) тоже весят слушатели события мыши, то как быть?
Менять архитектуру. Если же этот вариант не подходит, есть несколько вариантов решений в зависимости от вашей архитектуры.
Например:
Можно сначала проверять по какому пикселу битмапы вы кликнули. И если прозрачность этого пиксела подходит под ваше собственное определение прозрачности (скажем более 80-85%) то верхний клип не реагирует на клик а нижнему отправляется событие.
Ну и так далее...

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
По моему маска тут нужна. Либо программно нарисованная, либо заранее во FlashIDE.

Старый 20.04.2010, 13:16
markII вне форума Посмотреть профиль Отправить личное сообщение для markII Найти все сообщения от markII
  № 9  
Ответить с цитированием
markII

Регистрация: Nov 2009
Сообщений: 56
попробовал сделать как посоветовал Bgg. Но не получилось. В этом коде слушатель все равно не проходит через альфу. Может я че то не так пишу?
Код AS3:
image = new  Bitmap(e.target.content.bitmapData.clone());
var bitmapData:BitmapData = new BitmapData(image.width,image.height, true, 0xFF0000)
var mtrx:Array=[1, 0, 0, 0, 0,
		      0, 1, 0, 0, 0,
		      0, 0, 1, 0, 0,
		      0, 0, 0, -1, 255];
var filter:ColorMatrixFilter = new ColorMatrixFilter(mtrx);
image.bitmapData.applyFilter(image.bitmapData, image.bitmapData.rect, new Point(), filter);
container.addChild(image);
Попробую через проверку на прозрачность пикселов, как предложил Партизан

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

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

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


 


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


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