У меня есть пользовательский компонент, содержащий список, отображающий элементы из коллекции 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>
где данные XML могут выглядеть следующим образом:
<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>
и снимок экрана, подобный этому (представляющий объединяемые игры с участием до 3 игроков):
Моя проблема в том, что прослушиватель change -Event запускается не только при щелчке мышью по элементу, но и при нажатии клавиш со стрелками на клавиатуре:
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));
}
Также, если я щелкну дважды, только один щелчок мыши приведет к отправке моего пользовательского события (поскольку очевидно, что между элементами нет изменения ).
Кто-нибудь знает, пожалуйста, как заставить мой Список реагировать только на щелчки мышью?
UPDATE:
Да, я пытался использовать событие "изменить" для списка ранее, но затем у меня есть проблема, что он запускается, даже если нажата полоса прокрутки списка.