voce Lista Flex4 doppio click evento
-
19-09-2019 - |
Domanda
Sto lavorando con un componente List personalizzato in Flex4. Ho creato un itemRenderer personalizzato e tutto appare e funziona come voglio, ma sto cercando di ottenere il doppio evento click. Ricevo premuto il tasto e tutti gli altri eventi, ma non questo. Ho permesso il doppio click sul componente List
doubleClickEnabled="true"
e ho aggiunto un listener di eventi per
ListEvent.ITEM_DOUBLE_CLICK
posso cliccare finché voglio, l'evento solo che non viene attivato. Potrei usare qualche consiglio. Grazie.
Soluzione
Si desidera ascoltare per MouseEvent.DOUBLE_CLICK
e quindi si può capire cosa è stato fatto clic sull'utilizzo event.target
.
Altri suggerimenti
Ho sbattuto la testa contro il muro per ore a causa di questo! Adobe sta andando all'indietro con funzionalità dei componenti! in ogni caso, ho trovato una soluzione decente:
Stiamo per aggiungere il listener di eventi DOUBLE_CLICK alla Datagroup della lista, che è il contenitore degli elementi:
list.dataGroup.doubleClickEnabled = true;
list.dataGroup.addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);
Ora funziona bello, non provocando un doppio click dal scroller, ma davanzale provocando un doppio clic da uno spazio aperto (la Datagroup stesso) nella lista in cui non ci sono elementi. così continuiamo solo il gestore di eventi se e.target = Datagroup:
private function handleDoubleClick(e:MouseEvent):void
{
if (list.dataGroup != e.target)
{
// double click code
}
}
Ora funziona benissimo :) uff! Non dobbiamo perdere tempo su questa roba ...
Bad soluzione -.> NON tentare di confrontare la classe di e.target alla classe del itemRenderer della lista, dato che a volte e.target è l'etichetta reale dell'oggetto