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

elmortem 21.10.2008 22:34

Перекрытия (и снова)
 
Вступление.
Поиск на этом сайте странный. Нашёл какие-то посты, где ругаются, что часто обсуждали, но самих обсуждений не нашёл ни разу.

Дано.
Есть вот такая структура мувика:
root->mov1:MovieClip->mov:MovieClip->txt:TextField
root->mov2:MovieClip->mov:MovieClip

Клипу root.mov2.mov назначено событие MouseEvent.CLICK. Текстовое поле root.mov1.mov.txt находится "выше" перекрывает собой root.mov2.mov. На текстовом поле, родителе и родиеле родителя нет никаких обработчиков событий.

Проблема.
Событие MouseEvent.CLICK для oot.mov2.mov не отлавливается. Как его отловить? Желательно стандартными средствами.

Rzer 21.10.2008 22:49

Смотри свойста mouseEnabled и mouseChildren

mre 21.10.2008 23:56

Цитата:

Сообщение от elmortem (Сообщение 771912)
Событие MouseEvent.CLICK для oot.mov2.mov не отлавливается. Как его отловить?

Если объект перекрыт другим объектом, то естественно клик не отловиться.
И это правильно. Зачем кликать по тому, чего не видно?
Ну а если все-таки нужно, используйте не стандартные средства. Например, наложение невидимых объектов поверх остальных.

elmortem 22.10.2008 01:17

Rzer
Пробовал - не помогло. Сдаётся мне, что это фишка текстового поля... ):

mre
Вопрос философский. Ответ - надо. Например туман в игре, которые лоиться поверх игровых объектов. Или в моём случае это текстовые поля с различной инфой. От дебага до всяких там скорезов...

mre 22.10.2008 01:34

Согласен. Бывает такая необходимость. Ну не предусмотрено подобного свойства.
Используйте "танцы с бубном" :)

elmortem 22.10.2008 01:58

Ох уж мне эти танцы с бубном. ):

MerlinTwi 22.10.2008 16:33

> Пробовал - не помогло.
Что значит не помогло?
Нужно выключить обработку мыши у всех объектов, которые находятся выше root.mov2.mov (не только у текстового поля, т.к. иначе клик перехватывает root.mov1.mov).
Должно работать:
Код:

mov1.mouseEnabled = false;
mov1.mouseChildren = false;


elmortem 23.10.2008 13:45

гм...
просто в моём случае mov1 - это некий слой для реализации GUI, т.е. некоторые детишки этого слоя всё же должны заниматься отловом мышей. Видимо придётся сделать 2 GUI-слоя. Спасибо.


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

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