Item de lista Flex4 duplo clique evento
-
19-09-2019 - |
Pergunta
Eu estou trabalhando com um componente de lista personalizada em FLEX4. Eu criei um ItemRenderer personalizado e tudo parece e funciona como eu quero, mas eu estou tentando obter o evento de clique duplo. Estou recebendo tecla para baixo e todos os outros eventos, mas não esta. Eu já permitiu o duplo clique sobre o componente List
doubleClickEnabled="true"
e eu adicionei um ouvinte de evento
ListEvent.ITEM_DOUBLE_CLICK
Eu posso clicar contanto que eu quero, o evento não é apenas acionado. Eu poderia usar algum conselho. Obrigado.
Solução
Você quer ouvir MouseEvent.DOUBLE_CLICK
e então você pode descobrir o que foi clicado usando event.target
.
Outras dicas
Eu bati minha cabeça na parede por horas devido a esta! Adobe está indo para trás com a funcionalidade do componente! de qualquer maneira, eu encontrei uma solução decente:
Nós vamos adicionar o ouvinte de evento DOUBLE_CLICK ao DATAGROUP da lista, que é o contêiner dos itens:
list.dataGroup.doubleClickEnabled = true;
list.dataGroup.addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);
Agora ele funciona agradável, não provocando um duplo clique do scroller, mas peitoril provocando um duplo clique de um espaço aberto (o próprio DATAGROUP) na lista onde não há itens. por isso só continuar o manipulador de eventos se e.target = DATAGROUP:
private function handleDoubleClick(e:MouseEvent):void
{
if (list.dataGroup != e.target)
{
// double click code
}
}
Agora, ele funciona muito bem :) ufa! Não devemos perder tempo com essas coisas ...
Bad solução -.> NÃO tentar comparar classe de e.target a classe da lista do itemRenderer, já que às vezes e.target é o rótulo real do item