Flex 4 - выберите и отмените выбор одного и того же элемента в <s: List> с помощью mousedown - PullRequest
1 голос
/ 14 декабря 2010

В Flex 4 у меня есть компонент Spark List с средствами визуализации элементов.Я хотел бы выбрать элемент в списке, щелкнув по нему, и отменить его выбор, нажав на тот же выбранный элемент .Как и вкл / выкл.

Мой рендерер элементов имеет следующие состояния:

<s:states>
<s:State name="normal"/>
<s:State name="hovered"/>
<s:State name="selected"/>
</s:states>

, поэтому я попытался добавить прослушиватель событий щелчка к рендереру элементов с помощью:

private function selectUnSelect():void {
if (currentState == 'selected') currentState = 'normal';
else currentState = 'selected';

}

с неловким поведением ... когда элемент остается выбранным даже после повторного щелчка по нему в выбранном состоянии.

Подумайте об использовании компонента List без Command (onmac) или кнопка управления на окнах.

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

Этот пост может быть полезен для вас: http://flexponential.com/2009/12/13/multiple-selection-in-a-spark-list-without-the-control-key/

1 голос
/ 14 декабря 2010

Вместо того, чтобы средство визуализации элементов устанавливало его состояние, я бы работал с самим списком.Попросите, чтобы средство визуализации элементов отправляло событие, когда оно щелкает, которое включает в себя данные средства визуализации элементов, затем добавьте прослушиватель для этого события (либо в компоненте, который расширяет List, либо в компоненте, который содержит ваш список).Затем вы можете проверить, соответствуют ли данные любому из выбранных элементов вашего Списка.Если нет, добавьте элемент к выбранным элементам.Если это так, удалите его из выбранных элементов.Надеюсь, это поможет.

...