拦截所有按钮点击

时间:2011-02-09 19:07:39

标签: flash flex air flex4

我的问题是:

有没有办法可以拦截我的Flex(空气)应用程序中的所有按钮点击事件,因为我需要在点击某个按钮时添加声音,而且我不想浏览所有屏幕并添加此功能更改每个按钮中的每次点击事件。

那么我有办法做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这取决于您的特定网站结构,这样做有多容易。你的按钮都有自己独特的类,或者共享一些区别特征(实例名称中常见的匈牙利风格_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...
    }
}

如果显示列表中的处理程序停止事件传播,则无效。鼠标点击必须一直冒泡到根目录。