2009-07-25 88 views
1

您好我已經在mxml中創建了以下項目渲染器,但是當我出於某種原因在列表中使用它時,我無法選擇它。 我做錯了什麼?無法選擇自定義項目渲染器(flex)

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" 
horizontalScrollPolicy="off"> 
<mx:Script> 
<![CDATA[ 
import com.pbsmedia.kanpeki.domain.calEvent.CalEventType; 
[Bindable] 
private var calEventType:CalEventType; 
override public function set data(value:Object):void 
{ 
if(value != null) 
{ 
calEventType = value as CalEventType; 
colorBar.setStyle("backgroundColor", calEventType.eventColor); 
} 
} 
]]> 
</mx:Script> 
<mx:Image source="{calEventType.icon}" /> 
<mx:Label text="{calEventType.name}" selectable="true"/> 
<mx:HBox height="100%" width="100%" horizontalAlign="right" paddingRight="20"> 
<mx:Box id="colorBar" width="50" height="100%" > 
</mx:Box> 

渲染器設置在創建完整列表的父組件作爲 如下。

private function cc():void{ 
if(_itemRenderer != null) 
{ 
lt.itemRenderer = getItemRendererFactory(); 
} 
} 
private function getItemRendererFactory():ClassFactory 
{ 
return new ClassFactory(_itemRenderer); 
} 

我看不出有什麼理由不能選擇它,任何指針都不勝感激。

回答

2

排序這個。我忘記了在覆蓋中調用super.data = value。

+0

我需要在顯示器上粘貼一張貼子。它每次都讓我感覺到。 – Kai 2010-05-07 21:29:55

0

而不是擴展HBox爲您的自定義渲染器,請嘗試直接延伸ListItemRendererCanvas

順便說一句,我會假設你已經貼錯的問題,因爲你已經從一個

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalScrollPolicy="off"> 

..與關閉:

</mx:Box> 
+0

謝謝。我忘記了調用super.data =傳遞的值 – user17510 2009-08-01 05:02:54