2010-01-10 5 views
2

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

doubleClickEnabled="true" 

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

ListEvent.ITEM_DOUBLE_CLICK 

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

ответ

5

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

+0

Спасибо. Я использовал это, и он работает нормально. Похоже, это правильный способ сделать это. –

1

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

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

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

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

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

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


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

Смежные вопросы