2010-12-14 1 views
1

플렉스 4에서는 아이템 렌더러가있는 스파크 목록 구성 요소가 있습니다. 목록에서 항목을 선택하고 해당 항목을 선택 취소 하시려면과 동일한 항목을 클릭하십시오. 켜기/끄기 스위치와 같습니다.플렉스 4 - <s:List> mousedown의 동일한 항목 선택/선택 취소

내 아이템 렌더러가 다음과 같은 상태 : 어색한 행동

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

}

:

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

그래서 함께 아이템 렌더러에 클릭 이벤트 리스너를 추가하려 ... 선택한 상태에서 항목을 다시 클릭 한 후에도 항목이 선택된 상태로 유지됩니다.

Command (Mac의 경우) 또는 Windows의 Control (컨트롤) 버튼을 사용하지 않고 List 구성 요소를 사용하십시오.

+0

는 항목이 선택 여부되었는지 여부를 나타냅니다 당신의 기본의 dataProvider에 속성을 추가 할 수 있을까요? 뭔가 : public var isSelected : Boolean = true? –

답변

1

항목 렌더러의 상태를 설정하는 대신 List 자체에 대한 작업을 수행합니다. 항목 렌더러가 항목 렌더러의 데이터를 포함하는 클릭 이벤트를 보낸 다음 해당 이벤트에 대한 수신기를 추가합니다 (List를 확장하는 구성 요소 또는 목록이 포함 된 구성 요소). 그런 다음 데이터가 List의 selectedItem 중 하나와 일치하는지 확인할 수 있습니다. 그렇지 않은 경우 항목을 selectedItems에 추가하십시오. 그렇다면 selectedItems에서 제거하십시오. 희망이 도움이됩니다.