Событие двойного щелчка элемента списка Flex4 - PullRequest
2 голосов
/ 10 января 2010

Я работаю с пользовательским компонентом List в flex4. Я создал собственный ItemRenderer, и все выглядит и работает так, как я хочу, но я пытаюсь получить событие двойного щелчка. Я получаю ключ вниз и все другие события, но не это. Я включил двойной щелчок на компоненте List

 doubleClickEnabled="true"

и я добавил прослушиватель событий для

ListEvent.ITEM_DOUBLE_CLICK

Я могу кликать сколько угодно, событие просто не запускается. Я мог бы использовать любой совет. Спасибо.

Ответы [ 2 ]

5 голосов
/ 12 января 2010

Вы хотите прослушать MouseEvent.DOUBLE_CLICK, а затем вы можете выяснить, на что нажали, используя event.target.

1 голос
/ 18 ноября 2011

Из-за этого я часами бился головой об стену! Adobe идет назад с функциональностью компонентов! во всяком случае, я нашел достойное решение:

Мы собираемся добавить прослушиватель событий DOUBLE_CLICK в группу данных списка, который является контейнером элементов:

list.dataGroup.doubleClickEnabled = true;   
list.dataGroup.addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);

Теперь все работает хорошо, не провоцируя двойной щелчок в скроллере, а, тем не менее, провоцируя двойной щелчок из открытого пространства (самой группы данных) в списке, где нет элементов. поэтому мы продолжаем обработчик событий, только если e.target! = dataGroup:

private function handleDoubleClick(e:MouseEvent):void
{
  if (list.dataGroup != e.target)
  {
    // double click code
  }
}

Теперь все работает отлично :) тьфу! Мы не должны тратить время на эти вещи ...


Плохое решение -> НЕ пытайтесь сравнивать класс e.target с классом itemRenderer в списке, поскольку иногда e.target является фактической меткой элемента.

...