![]() |
До объекта не доходит событие
Вложений: 1
Если первый объект перекрывается вторым, то до первого объекта не доходит событие.
В примере это хорошо видно. Красный прямоугольник, это не видимый объект, для того чтобы использовать событие MOUSE_WHEEL, под ним расположены три кнопки и если красный прямоугольник перекрывает кнопки, то до них не доходят события, как это исправить? |
Повесить MOUSE_WHEEL на контейнер, содержащий все нужные объекты, использовать метод getObjectUnderPoint для получения объектов под мышкой.
|
Вложений: 1
getObjectUnderPoint работает. Но я не могу понять, он работает когда я щелкаю по объектам, а когда использую MOUSE_OVER то события до объектов опять же не доходят. Вот пример и код:
Код AS3:
|
А Вам вообще нужно ловить события на прямоугольнике?
Во первых, он называется bg(background?) но в списке отображения находится выше кнопок Во вторых не мешало бы сделать Код AS3:
Но, мб, я просто не понял Ваших замыслов |
bg подразумевалось, как область для мыши. Расположено всё верно. В чем собственно и суть вопроса.
Красный прямоугольник - это область для события MOUSE_WHEEL, убивать его свойством mouseEnabled нет необходимости. Замысел простой (: Те 3 кнопки, это некоторый список, который нужно прокручивать, поэтому с верху, над ними, находится красный прямоугольник - область для события MOUSE_WHEEL. Возможно, я чего не догоняю и нужно всё по другому организовать для правильной работы. |
Ваши объекты и не будут диспатчить мышиные события, если перекрыты InteractiveObject'ами с включенным mouseEnabled. Предполагалось, что по MOUSE_WHEEL у контейнера, где находятся все нужные объекты, вы будете искать детей, находящихся под мышкой, используя метод getObjectsUnderPoint. Результат будет тот-же, как если бы у вас все объекты диспатчили MOUSE_WHEEL
Хотя у меня большие сомнения, что решение, которое вызвало необходимость таких извращений, правильное. Опишите ситуацию в целом, может что-то умное подскажем :) Добавлено через 4 минуты Цитата:
Код AS3:
|
Вложений: 1
Цитата:
Ситуация в целом: Есть SQLite база нужно данные базы разбить в список в виде кнопок. Этот список может быть большим и не помещаться на экране, поэтому его нужно прокручивать. Использовать компоненты я в принципе не хочу. Вот пример, я как мог упростил проектирование приложения, многое по не надобности откоцал, но разумеется суть осталась. Класс UserView описывает одну кнопку. Этот класс так же понимает, что, если на него навели мышкой MOUSE_OVER, то он меняет свое свойство, в данном случае alpha. Класс UsersList наследует модель класса SQLitePManager. Наследование я откоцал, записал построение списка через цикл. Т.е. UsersList создает список из UserView. Далее класс ManagersUsers берет готовый список UsersList добавляет к списку кнопки управления, объект поверх списка для скроллирования, который в свою очередь и перекрывает доступ событий. Есть вариант, повесить MOUSE_MOVE и проверять постоянно расположение мыши и если мышь попадает в нужные координаты, то можно скроллить, но это совсем убогий вариант, на самый крайний случай. Цитата:
|
А что понимается под "необходимость таких извращений"?
То, что я один объект положил на другой? Я просто не понимаю. |
| Часовой пояс GMT +4, время: 12:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.