Форум 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=194281)

red_penguin 11.02.2013 11:51

Как сделать видимый объект абсолютно прозрачным для мыши?
 
Вложений: 1
Есть поле. На нем монстры.
Когда выделяешь одного из своих монстров, то монстров которых можно атаковать подсвечивает большим вращающимся кругом.
Проблема в том, что большой вращающийся круг перекрывает других монстров и отключить у меня это перекрытие так и не получилось.
В связи с тем, что проект огромный и скинуть его не могу я создал выжимку, которая воспроизводит баг.
В примере наведите мышку на верхний красный кружок и посмотрите на трэйсы.
Я проблему уже решил путем помещения всех этих вращающихся кругов в отдельный контэйнер, но все же хотелось, что бы круги находились в тех же контэйнерах, что и монстры.


В примере в роли монстров - синие прямоугольники.
В роли вращающихся кругов - зеленые прямоугольники.

Hauts 11.02.2013 11:54

Цитата:

Как сделать видимый объект абсолютно прозрачным для мыши?
Навскидку: mouseEnabled & mouseChildren = false ?

Опс, поторопился.

caseyryan 11.02.2013 12:11

Цитата:

Опс, поторопился.
Почему поторопился? Именно это и решит проблему.
Более подробно сказать не могу, потому что нет у меня на компе adobe flash чтобы посмотреть этот fla файл. Надо было код сюда лучше выложить.
У меня есть над персонажами и полоски здоровья, и круги подсвечивающие персов, и все что можно. Все это находится в одном контейнере с персом, и ничего не перекрывается.
п.с. сложно представить как это должно выглядеть, но могу предположить что круги должны находиться под персонажами, а не над ними
или вообще можно сделать отрисовку в bitmapData

Jewelz 11.02.2013 12:14

Код AS3:

container.mouseEnabled = false;
container2.mouseEnabled = false;


Wolsh 11.02.2013 12:36

caseyryan, речь о перекрытии одного персонажа другим персонажем с кругом. То есть не круг перекрывает перса (в общем контейнере), а другой перс (точнее, контейнер в котором перс и круг). Поэтому выше этот круг, или ниже, никакого значения не имеет — он в другом контейнере, а этот контейнер выше перекрываемого перса. Поэтому дизаблить надо всех персов целиком (контейнеры), только не отключать mouseChildren, чтобы "внутренности" сами определялись, кто слышит мышь а кто нет.

caseyryan 11.02.2013 13:06

Цитата:

речь о перекрытии одного персонажа другим персонажем с кругом.
аа, блин, не так понял. Собственно, если нужно чтобы перс выбирался, не обязательно чтобы по нему вообще можно было щелкать мышью. Можно просто расчтиывать на сколько курсор далеко от перса, и на основании этого принимать решениие щелкают по нему или нет.
Хотя я не вижу проблемы и с вариантом, когда под контейнером с персонажами будет еще один контейнер с кругами. Координаты те же, даже сложностей не возникнет с просчетом положения кругов

red_penguin 11.02.2013 16:48

caseyryan, просто круги большие и если два монстра стоят друг над другом, то круг верхнего налезает на круг нижнего.
Это не катастрофа конечно, но хотелось бы иначе.

Wolsh спасибо, ларчик и впрямь просто открывался) Поставил свойству mouseEnabled контейнеров container и container2 false и заработало.

Jewelz 11.02.2013 22:38

а мои сообщения видно вообще? =)

dimarik 11.02.2013 22:51

Hem, только wolsh'a =)

red_penguin 12.02.2013 13:40

Jewelz, и вам спасибо) Вчера проглядел ваше сообщение )


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

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