0
在flex3中,List有isItemSelected()方法,但我沒有在flex4中找到它們。我的場景是確定當前的ItemRenderer是否被選中,然後取決於選定的值,在ItemRenderer中的特定組件上做一些邏輯(假設ItemRenderer有一個Image組件和Label組件,我只想在圖像)Flex4 List itemRenderer isItemSelected()方法
在flex3中,List有isItemSelected()方法,但我沒有在flex4中找到它們。我的場景是確定當前的ItemRenderer是否被選中,然後取決於選定的值,在ItemRenderer中的特定組件上做一些邏輯(假設ItemRenderer有一個Image組件和Label組件,我只想在圖像)Flex4 List itemRenderer isItemSelected()方法
在Flex 4中,項目渲染器功能可以更好地使用狀態。這意味着,他們有默認的狀態,我們可以用它們來實現國家的具體邏輯:
normal
hovered
selected
up
如果您希望在項目也選擇了做一些事情,你可以添加一個偵聽器stateChangedComplete
事件,並在該處理程序中實現您的邏輯(當然,您將不得不測試當前的狀態是否被選中)。代碼可能看起來像這樣:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
stateChangeComplete="stateChangedHandler()"
autoDrawBackground="false">
<fx:Script>
<![CDATA[
protected function stateChangedHandler():void
{
if(currentState == "selected")
{
// implement your logic here
}
}
]]>
</fx:Script>
<!-- Your original MXML code here -->
</s:ItemRenderer>
如果您需要一些非平凡的邏輯,這將是要走的路。但是,如果只需要更改圖像上的某些屬性,則在選擇項目渲染器時,您可以僅在該元素上指定特定於狀態的屬性/值對,如下所示(讓我們假設圖像默認爲淡色和選擇項目時,要淡化他們,爲解釋的緣故):
<s:Image alpha="0.5" alpha.selected="1" />
這種方式,不需要監聽器/處理器。
希望這會有所幫助。祝你有美好的一天。
糾正我,如果我錯了,但是國家尚未在Flex 3? – RIAstar 2012-08-09 09:06:55
嗯,是的,但在我看來,在Flex 4中,您可以使用它們做更多事情。那正是我想表達的。但是你是對的,可以理解它們已經被Flex 4引入了,這是不正確的。 – 2012-08-09 09:12:23
我編輯了我的答案,希望這種方式更有意義。 – 2012-08-09 09:15:13