Как получить родителя контекстного меню - PullRequest
0 голосов
/ 27 июля 2011

Есть ли способ узнать родитель / компонент, который инициирует контекстное меню?
У меня есть панель, которая содержит различные пользовательские компоненты. я хочу открыть соответствующее всплывающее окно пользовательского компонента из контекстного меню, когда пользователь щелкнет правой кнопкой мыши соответствующий компонент.

Как мне найти родительский пользовательский компонент, который запускает контекстное меню?

Например:

Пользовательский компонент: 1. Метка, 2. Кнопка

Элемент контекстного меню: свойства

При щелчке правой кнопкой мыши по надписи «Метка» открывается контекстное меню, в котором есть пункт «Свойства», при щелчке по свойствам должно открываться пользовательское всплывающее окно со свойствами «Метка». аналогично для кнопки.

Я пытаюсь прослушать событие по щелчку контекстного меню, но это бесполезно.

Как правильно достичь этого?

1 Ответ

1 голос
/ 28 июля 2011

Попробуйте добавить прослушиватель для ContextMenuEvent .MENU_SELECT к фактическому свойству contextMenu каждого из компонентов. В обработчике вы можете сделать что-то вроде:

protected function contextMenuEventHandler(cme:ContextMenuEvent):void
{
  var props:ContextMenuItem = new ContextMenuItem("Properties");
  props.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
    function (event:ContextMenuEvent):void
    {
      Alert.show(cme.mouseTarget.toString());
    });
  cme.contextMenuOwner.contextMenu.customItems.push(props);
}

Это один из способов сделать это. Лично я обычно делаю пользовательские контекстные меню заранее и устанавливаю их для каждого компонента в MXML. Тем не менее, в некоторых случаях лучше делать это динамически (как указано выше).

...