화살표 키를 무시 ...XMLListCollection에에서 항목을 표시하는 목록 포함, spark.components.List 항목에 마우스 클릭을 감지하지만 사용자 정의 구성 요소가
[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와 결합 가능한 게임을 대표하는 선수) :
내 문제는 항목을 마우스로 클릭 할 때 변화 - 이벤트 리스너는 해고되지뿐만 아니라, 키보드의 화살표 키를 누르면 때입니다 :
private function gameClicked(event:IndexChangeEvent):void {
var game:XML = event.currentTarget.selectedItem as XML;
if (game == null)
return;
Alert.show("Clicked game: " + [email protected]);
dispatchEvent(new PrefEvent(PrefEvent.GAME_CLICKED, [email protected]));
}
또한 두 번 클릭하면 마우스 클릭 1 회만 내 맞춤 이벤트가 전달됩니다 (항목간에 변경이 분명하지 않기 때문에).
내 목록을 마우스 클릭에만 반응시키는 방법을 알고 계시나요?
UPDATE :
예, 전에 목록에 대한 "변경"이벤트를 사용하여 시도했지만, 나는이 목록의 스크롤바를 클릭하더라도 해고된다는 문제가있다.
아니요, 전에 List에 CLICK 리스너를 추가하려고 시도했는데 List 스크롤 막대를 클릭하더라도 사용자 정의 이벤트를 전달합니다. –
예, 클릭 작동 방식입니다. 조건부를 사용하여 항목 렌더러가 클릭되는지 확인하려면 'if (event.target is Game)'또는 사용자 정의 항목 렌더러가 클릭 자체를 듣고 해당 사용자 정의 이벤트 자체를 전달하도록해야합니다. –
두 번째 옵션 (Game 클래스에 "클릭"리스너 추가) - 사용자 정의 PrefEvent 2 레벨을 List를 보유하고있는 사용자 정의 로비 구성 요소의 부모에게 전달하는 방법은 무엇입니까? –