MenuBarItem

MenuBar顶级菜单点击事件的处理

 (2010-01-16 20:02:09)
标签: 

flex

 

menu

 

menubar

 

事件

 

点击

 

菜单

 

处理

 

it

分类: Flex/ActionScript
MenuBar的itemClick事件只能监听到子菜单的点击事件,对于顶级菜单的点击则不能监听到,如何来响应顶级菜单的点击事件呢?可以用下面的方法:
比如有个id为TopMenu的menubar
  我们用两个侦听器来监测menubar的点击事件,一个是Menu的itemClick事件还有一个是click事件.
  就是说用Menu的itemClick的事件还监测子Menu的点击事件,再用click事件检测menubar的顶级菜单的点击事件.
  具体:
    import mx.controls.menuClasses.MenuBarItem;//需要用到这个类来得到子菜单
    //itemClick事件
    private function itemClick(e:MenuEvent):void
    {
         trace(e.label)
    }
    //MouseEvent
    private function doClick():void
    {
      //用MenuBarItem.data是否为空来判断该MenuBarItem是否有子Menu,如果有
        就不触发事件,这个可以根据自己的需要来设置
     if(TopMenu.selectedIndex!=-1&&MenuBarItem(TopMenu.getChildAt(TopMenu.selectedIndex+1)).data=="")
        {
          trace(MenuBarItem(TopMenu.getChildAt(TopMenu.selectedIndex+1)).data.@name);
          //激活所有MenuBar的顶级MenuBarItem
          activeMenu();
          //使点过的按钮不能再点
          MenuBarItem(TopMenu.getChildAt(TopMenu.selectedIndex+1)).enabled=false;
        }
    }
    //激活所有MenuBar的顶级MenuBarItem
    private function activeMenu():void
    {
        for each(var item:MenuBarItem in TopMenu.menuBarItems)
      {
        item.enabled=true;
      }
    }
原文地址:https://www.cnblogs.com/regalys168/p/4094513.html