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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top