перехватывать все нажатия кнопок - PullRequest
0 голосов
/ 09 февраля 2011

Мой вопрос:

Есть ли способ, которым я могу перехватить все события нажатия кнопок в моем приложении Flex (air), потому что мне нужно добавить звук при нажатии какой-либо кнопки, а я не хочуПройдите по всем экранам и добавьте эту функцию, а также измените каждое событие нажатия в каждой кнопке.

Так есть ли способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 09 февраля 2011

Зависит от вашей конкретной структуры сайта, насколько легко это сделать. Все ли ваши кнопки имеют свой собственный уникальный класс или иным образом имеют какую-то отличительную особенность (общий маркер _btn в венгерском стиле в именах их экземпляров)? Если это так, вы можете попробовать что-то вроде этого:

root.addEventListener(MouseEvent.CLICK, onButtonClickPlaySound);
private function onButtonClickPlaySound(e:MouseEvent):void{
    if(e.target is ExtendedButton){
        // play sound here...
    }

    // or....

    if(e.target.name.indexOf("hungariannotation") >= 0){
        // play sound here...
    }
}

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

...