Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перекрытие одного объекта другим (http://www.flasher.ru/forum/showthread.php?t=215802)

Appleman 14.09.2021 16:00

Перекрытие одного объекта другим
 
Камрады, нужен совет.

Имею экземпляр Sprite, который добавляется раньше другого, т.е. "лежит" на один слой ниже. Менять нельзя. На этом экземпляре висит слушатель событий менеджера тултипов, чтобы при наведении выводить тултип. Но из-за того, что сверху есть ещё один спрайт (хотя пересекаются они "пустотой"), ничего не получается, т.е. событие MOUSE_OVER не регистрируется.

Как это побороть?
Спасибо.

udaaff 16.09.2021 17:59

Что значит "пустотой"? Прозрачный битмап?

undefined 16.09.2021 18:10

Выставь mouseEnabled=false пустому дисплей обжекту

Appleman 17.09.2021 00:07

Цитата:

Сообщение от udaaff (Сообщение 1206951)
Что значит "пустотой"? Прозрачный битмап?

Да, там битмап с альфа-каналом. Само изображение круглое, поэтому по углам прозрачные участки.

Цитата:

Сообщение от undefined (Сообщение 1206952)
Выставь mouseEnabled=false пустому дисплей обжекту

Не могу, т.к. при наведении на непрозрачную область должен реагировать.

undefined 17.09.2021 00:55

Цитата:

Не могу, т.к. при наведении на непрозрачную область должен реагировать.
А по задумке должны оба объекта реагировать?
Тогда пробуй редиспач onRollOver с помощью dispatchEvent

udaaff 22.09.2021 05:58

Цитата:

Сообщение от Appleman (Сообщение 1206953)
Да, там битмап с альфа-каналом. Само изображение круглое, поэтому по углам прозрачные участки.

Решения из коробки нет. Надо хиттестом смотреть точку по координатам курсора и определять самостоятельно по маусмув/интерфрейм на какой объект мы навелись.

Appleman 22.09.2021 11:45

Цитата:

Сообщение от undefined (Сообщение 1206954)
А по задумке должны оба объекта реагировать?
Тогда пробуй редиспач onRollOver с помощью dispatchEvent

Ну да. Там тултипы всплывают.
Не совсем понял задумку с dispatchEvent.

Мне представлялось, что за подобные штуки отвечает всплытие. Или это не в ту степь? Почитаю ещё...

undefined 22.09.2021 15:10

Тут я затупил похоже. dispatchEvent надо вызывать у спрайта, который перекрыт т.е. у прозрачного клипа должна быть ссылка на то, что под ним.
Надо как-то отслеживать кого прозрачный битмап перекрывает.

udaaff 23.09.2021 12:33

Цитата:

Сообщение от udaaff (Сообщение 1206955)
Решения из коробки нет. Надо хиттестом смотреть точку по координатам курсора и определять самостоятельно по маусмув/интерфрейм на какой объект мы навелись.

https://help.adobe.com/en_US/FlashPl...tsUnderPoint()
https://help.adobe.com/en_US/FlashPl...html#hitTest()

Appleman 24.09.2021 12:20

Круто, спасибо udaaff, респект. Я сам просмотрел.


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

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