|
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
это все работает, я же говорю не дырявится альфа это все равно что
то есть анулирование клика только в области спрайта, а под спрайтом, под прозрачной частью видны другие, но они получаются закрыты верхним спрайтом.
|
|
|||||
Я вас не понимаю... Я вам код же отправил?
Он простой как топор. По пунктам: 1. Выкладываем на сцену предметы и сверху битмапу с прозрачными участками. Видно будет только те предметы, что находятся в пределах прозрачных пикселей битмапы; 2. Отключаем у битмапы мышиные события устанавливая InteractiveObject#mouseEnabled в false; 3. Подписываемся на клики от предметов. 4. В обработчике клика, проверяем пиксель под указателем у битмапы. Если пиксель прозрачный - обрабатываем клик по предмету, если пиксель не прозрачный, то не обрабатываем вообще или-же обрабатываем как-то иначе.
__________________
ЛОДКИ |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
в том то и проблема что верхний слой активным должен быть для кликов. а так получает он просто не пускает клики под себя.
|
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
нет
сейчас нарисую схему. Добавлено через 2 минуты Добавлено через 3 минуты http://prntscr.com/g76hu8 в общем красный круг не дает кликать на черный внутри себя. но при этом он также должен быть кликабельным. |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
шейпа вообще нет круги грузяться. маска не работает. кешасбитмат погоды не добавляет. короче я уже поизвращался нивкакую.
Добавлено через 2 минуты может я неправильно истолковал. Здесь я только тестирую на кругах в конечном итоге код должен работать с картинками. и нужно отсечь всю прозрачную альфу для кликов. чтобы если картинка перекрывает другую но через неё видно её, то должен срабоатть клик на нижней а не наверхней, а верхняя квадратом закрывает всю область. Добавлено через 5 минут картинку гружу и рисую её в bitmapDat`y с параметром транспарент. но все равно квадрат в итоге. и никак не хочет пускать клик под себя. Добавлено через 6 минут import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.display.BlendMode; import flash.net.URLRequest; import flash.display.PixelSnapping; /** * ... * @author @PsYcHoTeChNiK */ public class Circles extends Sprite { private var face: Sprite = new Sprite(); private var loadImage: Loader = new Loader(); private var imgbtm: Bitmap; private var imgbtmdt: BitmapData; public function Circles() { super(); loadImage.contentLoaderInfo.addEventListener(Event.COMPLETE, onlocad); loadImage.load(new URLRequest("circle.png")); } private function onlocad(e:Event):void { imgbtmdt = new BitmapData(loadImage.content.width, loadImage.content.height, true,0); imgbtmdt.draw(loadImage.content); imgbtm = new Bitmap(imgbtmdt); var imgbtm2: Bitmap = new Bitmap(imgbtmdt); var maska: Sprite = new Sprite(); maska.addChild(imgbtm2); maska.cacheAsBitmap = true; this.addChild(maska); face.addChild(imgbtm); //imgbtm.mask = maska; face.cacheAsBitmap = true; addChild(face); this.blendMode = BlendMode.LAYER; face.blendMode = BlendMode.NORMAL; this.mouseEnabled = false; this.addEventListener(MouseEvent.CLICK, onClick); } private function onClick(e: MouseEvent):void { var color32:uint = imgbtm.bitmapData.getPixel32(imgbtm.mouseX, imgbtm.mouseY); var a:uint = color32 >> 24 & 0xFF; if (a == 0) { return; } this.x += 10;; e.updateAfterEvent(); } } |
|
|||||
чтобы если картинка перекрывает другую но через неё видно её, то должен срабоатть клик на нижней а не наверхней, а верхняя квадратом закрывает всю область. А в клике по предмету делать уже только то, что вам нужно, туда клик придёт только если указатель находится над прозрачным пикселем.
__________________
ЛОДКИ |
|
|||||
Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
|
увы пробовал. В итоге либо я имею некликабельный элемент либо все тот же пресловутый квадрат закрывающий все.
|
Часовой пояс GMT +4, время: 03:56. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|