1

Flex 4には、アイテムレンダラーを備えたSparkListコンポーネントがあります。リスト内のアイテムをクリックして選択し、同じ選択したアイテムをクリックして選択を解除したいと思います。オン/オフスイッチのように。

私のアイテムレンダラーには次の状態があります。

<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';

}

厄介な動作で...選択した状態でアイテムをもう一度クリックした後でも、アイテムが選択されたままになります。

コマンド(Macの場合)またはWindowsの[コントロール]ボタンなしでリストコンポーネントを使用することを考えてください。

4

2 に答える 2

3

このブログ投稿はあなたに役立つかもしれません:http://flexponential.com/2009/12/13/multiple-selection-in-a-spark-list-without-the-control-key/

于 2010-12-14T23:17:40.803 に答える
1

アイテムレンダラーに状態を設定させるのではなく、リスト自体を操作します。アイテムレンダラーがクリックされたときに、アイテムレンダラーのデータを含むイベントをディスパッチし、そのイベントのリスナーを追加します(リストを拡張するコンポーネント、またはリストを含むコンポーネントのいずれか)。次に、データがリストの選択されたアイテムのいずれかに一致するかどうかを確認できます。そうでない場合は、選択したアイテムにアイテムを追加します。その場合は、selectedItemsから削除します。お役に立てば幸いです。

于 2010-12-14T19:22:40.977 に答える