Domanda

Ho un componente personalizzato, contenente un elenco che visualizza elementi da un xmllistCollection:

        [Bindable]
        private var _games:XMLListCollection = new XMLListCollection();

...

        <s:List itemRenderer="Game" dataProvider="{_games}"
          change="gameClicked(event)">
            <s:layout>
                <s:TileLayout />
            </s:layout>
        </s:List>

Dove i dati XML possono apparire così:

              <game id="0"/>
              <game id="9012">
                <user id="VK48058967" />
                <user id="MR14315189992643135976" />
                <user id="OK10218913103" />
              </game>
              <game id="9013">
                <user id="OK151358069597" />
                <user id="OK515549948434" />
              </game>

E lo screenshot come questo (che rappresenta i giochi per unione con un massimo di 3 giocatori):

enter image description here

Il mio problema è che il modificare-Event Listener non viene solo licenziato, quando un elemento viene fatto clic con il mouse, ma anche quando vengono premuti i tasti freccia sulla tastiera:

        private function gameClicked(event:IndexChangeEvent):void {
            var game:XML = event.currentTarget.selectedItem as XML;
            if (game == null)
                return;
            Alert.show("Clicked game: " + game.@id);
            dispatchEvent(new PrefEvent(PrefEvent.GAME_CLICKED, game.@id));
        }

Inoltre, se faccio clic due volte, solo 1 clic del mouse causerà la spedizione del mio evento personalizzato (perché ovviamente non c'è NO modificare tra gli articoli).

Qualcuno sappia, come far reagire solo la mia lista ai clic del mouse?

AGGIORNARE:

Sì, ho provato a usare l'evento "Modifica" per l'elenco prima, ma poi ho il problema che viene licenziato, anche se si fa clic sull'elenco.

È stato utile?

Soluzione

Erm, yourList.addEventListener(MouseEvent.CLICK, onClick)? Oppure puoi semplicemente utilizzare l'evento in linea in MXML. Questo ascolta tutto Fa clic nell'elenco.

Potresti voler solo avere un responsabile dell'oggetto personalizzato avere il proprio gestore di clic e inviare un evento personalizzato che bolle dove puoi ascoltarlo nell'elenco di visualizzazione, quindi può essere più specifico.

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