Как заставить мувиклипы реагировать на события мыши с невидимой кнопкой сверху - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть баннер с большой невидимой кнопкой, закрывающий сцену, а под ним - видеоклипы, которые должны реагировать на события мыши. Но я не могу пройти через невидимую кнопку. Я только получаю события кнопки и не могу взаимодействовать с мувиклипами под ним. Вот простой код:

invisibleBtn.addEventListener(MouseEvent.CLICK, onTopClick);
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver);

function onTopClick(e:MouseEvent):void{
    trace("top - click");
}

function onBottomOver(e:MouseEvent):void{
    trace("bottom - over");
}

Я никогда не получаю bottomMc MouseEvent ... есть мысли? Спасибо!

Ответы [ 4 ]

0 голосов
/ 03 декабря 2011

проверьте, находится ли bottomMc спереди

или попробуйте это:

this.setChildIndex(bottomMc,this.numChildren-1);
0 голосов
/ 02 декабря 2011

У вас есть основная кнопка, которая при нажатии открывает новую страницу, и в то же время вы хотите, чтобы взаимодействие с пользователем происходило с другими объектами?Переосмыслите подход.

У вас есть 2 решения:

1. Показывайте invisibleBtn только тогда, когда больше нет взаимодействия с пользователем.

2. Или используйте эту функцию:

getObjectsUnderPoint ( new Point ( stage.mouseX, stage.mouseY ) );

поместите эту строку в дескриптор EnterFrame, тогда вы получите весь объект в виде массива, там вы можете проверить имена объектов и решить, что теперь вы onBottomOver или onBottomOutпотому что все время будет активен invisibleBtn.

0 голосов
/ 03 декабря 2011

рекомендуем иметь одну кнопку для этого пространства ... и при нажатии отслеживать, если мувиклип виден ... если это так, тогда выполнять любую необходимую операцию, как если бы клик тоже был клик

0 голосов
/ 02 декабря 2011

Единственное, что вы можете сделать с этим, это отключить invisibleBtn и поместить событие клика в мувиклип вместо кнопки.

так, должно быть вот так.

invisibleBtn.mouseEnable=false;
invisibleBtn.mouseChildren =false;

bottomMc.addEventListener(MouseEvent.CLICK, onTopClick);
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver);

function onTopClick(e:MouseEvent):void{
    trace("top - click");
}

function onBottomOver(e:MouseEvent):void{
    trace("bottom - over");
}

так,это займет событие для мувиклипа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...