|
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
Клик через прозрачную область
Два дня искал хоть какой-нибудь пример и ничего годного не нашел.
Вопрос: можно ли сделать клик через прозрачные области загружаемой картинки. К примеру круг, а под ним какой-нибудь предмет. Нужно сделать так чтобы можно было кликать на ниже лежащий предмет, но при этом круг тоже кликабелен. Маска у меня почему-то не дает нужного эффекта. Помогите пожалуйста примером. |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
а можно тоже самое только кодом или для феди?
|
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
то есть поймать событие и если альфа непрозрачная задиспачить клик, если нет то клик пройдет дальше? правильно понял?
я пробовал что-то похожее но ничего не вышло. |
|
|||||
Цитата:
Вы код-то посмотрели? Я просто слушаю клики на "предметах", а в обработчике смотрю альфу пикселя у битмапы. Если альфа удовлетворяет условиям - делаем что-то с предметом. Цитата:
__________________
ЛОДКИ |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
мда вставил код в клик, но клик просто не проходит через прозрачное, но клик идет именно на изображении. Теперь бы продырявить альфу.
Добавлено через 59 секунд то есть задача пустить клик дальше верхнего спрайта. |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
мой адоб накрылся сроком. поэтому и просил код
|
|
|||||
Это почти тот-же самый код, что в example.fla
var bmp:Bitmap = getImage(); //откуда-нить берём битмап ic.mouseEnabled = false; //отключаем мышь у контейнера картинки //подписываемся на клики по "предметам" mc01.addEventListener(MouseEvent.CLICK, clickHandler); mc02.addEventListener(MouseEvent.CLICK, clickHandler); mc03.addEventListener(MouseEvent.CLICK, clickHandler); /** */ function clickHandler(e:MouseEvent):void { //получаем цвет пикселя по координатам мыши. var color32:uint = bmp.bitmapData.getPixel32(bmp.mouseX, bmp.mouseY); //получаем альфу var a:uint = color32 >> 24 & 0xFF; //если альфа не ноль, то завершаем выполнение, условие естественно может быть сложнее if (a != 0) return; //если всё таки пиксель прозрачный - удаляем со сцены объект var mc:SimpleButton = e.currentTarget as SimpleButton; mc.removeEventListener(MouseEvent.CLICK, clickHandler); removeChild(mc); }
__________________
ЛОДКИ |
Часовой пояс GMT +4, время: 16:09. |
|
« Предыдущая тема | Следующая тема » |
|
|