Flex:菜单不会自动隐藏?

时间:2011-12-05 00:13:50

标签: actionscript-3 flex flex4 flex4.5

我正在以这种方式创建一个菜单:

myMenu = Menu.createMenu( null, myMenuXMLListCollection, false );

然后显示:

myMenu.popup( 10, 10 );

但是当我点击菜单外的某个地方时,菜单不会自动消失。

  • 当我在外面点击菜单时,有没有办法让菜单自动消失?

1 个答案:

答案 0 :(得分:4)

在沙箱根上收听SandBoxMouseEventMOUSE_UP_SOMEWHERE。您可以使用SystemManagergetSandboxRoot

获取Sandbox根目录

所以,添加你的事件监听器,如下所示:

systemManager.getSandBoxRoot.addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, myMouseUpHandler);

然后在你的事件处理程序中,检查目标是否是菜单,如果没有隐藏菜单:

protected function myMouseUpHandler(event:SandboxMouseEvent):void{
  if(event.target != myMenuInstance){
    myMenuInstance.visible = false;
    // or whatever other action you wish to take to hide the menu.
  }
}

这是Flex ComboBox用于在鼠标单击时隐藏下拉菜单的一般方法。