![]() |
Инвертировать всплыв событий. dispatchEvent
Использую Broadcaster silin`а. (он рассылает события через статик методы класса).
Много объектов - одни на другом, при клике мышки проверяю, попал ли я на этот объект и тут же останавливаю пропоганду события (чтобы другие объекты не могли его получить). Удаляю объект с дисплей листа. Проблема в том, то что в моём случае удаляется самый "задний" из всех нажатых объектов. Задний - в смысле, самый низкий по глубине объект. Нужно удалять передний (делаю шутер). Собственно, существуют ли приёмы, чтобы без глобальных извращений (например, убрать остановку пропаганды события и писать все объекты получившего его и попавшие под мышку в какой нибудь статик массив, а потом оттуда уже брать значения и очищать его) сделать то, что мне нужно? |
если смотреть в контейнере, то
объекты под мышкой: getObjectsUnderPoint кликнутый объект (т.е. самый верхний) event.target в чем проблема и причем здесь статический диспатчер непонятно |
Это всё понятно. В игре присутствует пулемёт, то есть клик как таковой не подходит вовсе. getObjectsUnderPoint - метод тоже хорош, однако по каким то соображениям (не помню уже каким) решил сделать всё через твой класс. Переписывать не очень хочется, вот и спрашиваю, может есть ли ещё варианты.
|
А там обязательно слушать на клик "передние" объекты?
Т.е. пропаганда идет только по парентам. Я вот к чему. Традиционно: пропАганда. |
если все передается через бродкастер, то там вообще ничего не всплывает, о какой пропаганде речь не совсем понятно..
попробуй поменять порядок добавления слушателей этого бродкастера или напиши свой с сортировкой слушателей по положению в дисплейлисте, хотя зачем он вообще тут нужен тоже неясно "Переписывать не очень хочется" ни разу не аргумент, если речь о выборе между внятной логикой и шаманством :) |
Silin, поделись ссылкой на заветный класс броадкастера =)
|
http://www.flasher.ru/forum/blog.php?b=85
на самом деле это просто статический диспатчер, который можно слушать откуда угодно и вешать от его имени тоже.. вроде бы и удобно, но по большому счету бардачная вещь |
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 04:00. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.