Flex: меню не скрывается автоматически? - PullRequest
0 голосов
/ 05 декабря 2011

Я создаю меню следующим образом:

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

и затем показываю его с помощью:

myMenu.popup( 10, 10 );

, но меню не исчезает автоматически, когда я щелкаю где-то за пределами меню.

  • Есть ли способ заставить меню автоматически исчезать, когда я щелкаю за его пределами?

1 Ответ

4 голосов
/ 05 декабря 2011

Прослушайте SandBoxMouseEvent . MOUSE_UP_SOMEWHERE в корне песочницы. Вы можете получить корень Песочницы, используя SystemManager . getSandboxRoot

Итак, добавьте прослушиватель событий, примерно так:

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 использует для скрытия раскрывающегося меню по щелчку мыши.

...