Flex MenuBar 顶级菜单监听

itemClick是监控不到menubar的顶级菜单的,itemClick只是和Menu这个类有关,而menubar只是能"CALL"出Menu的
MenuBarItem的集合.但用menubar的change侦听器能监控到点击顶级按钮的事件,不过我在FLEX3正式版测试发现点击一次menubar的顶级按钮会出发两次change事件,如果用change事件来处理某些问题是很麻烦.

  我解决该类问题的方法如下:
  比如有个id为TopMenu的menubar
  
  我用两个侦听器来监测menubar的点击时间,一个是Menu的itemClick事件还有一个是click事件.

  就是说用Menu的itemClick的事件还监测子Menu的点击事件,再用click事件检测menubar的顶级菜单的点击事件.
  
  具体:
  //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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值