2012-09-03 79 views

回答

2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 溶液1
~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~在不斷變化的處理程序
調用preventDefault像這樣:

<s:List id="list" dataProvider="{myCollection}" changing="list_changingHandler(event)"/> 

列表中更改處理程序:

protected function list_changingHandler(event:IndexChangeEvent):void { 
    var item:Object = list.dataProvider.getItemAt(event.newIndex); 

    event.preventDefault(); 
} 

的event.preventDefault();防止選擇項目。如果您使用的是ArrayCollection,則前面行上的代碼允許您獲取將要選擇的項目。其他類型的數據列表或集合可能略有不同。

~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 溶液2 ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ 您也可以防止在項目渲染器選擇了一個項目,通過調用stopPropagation方法的mouseDown事件,像這樣:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" > 

    <s:CheckBox id="enabledCheckbox" mouseDown="event.stopPropagation();"/> 


</s:ItemRenderer> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 溶液3
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~ @RIAstar提到的設置在ItemRenderer中爲false。

+0

對我來說,將ItemRenderer的enabled屬性設置爲false將更容易 – RIAstar

+1

將ItemRenderer的enabled屬性設置爲false會使與列表項目的所有交互都處於非活動狀態。如果希望與內容互動,但沒有突出顯示/聚焦/選擇列表項目,則不能選擇此選項。 – Thistledowne

相關問題