2010-03-20 16 views

回答

2

這裏是解決方案: 在擴展樹中重寫函數getItemRendererFactory(data:Object):IFactory並執行必要的邏輯來選擇適當的itemRenderer。

希望這也將幫助別人

1

該條件邏輯應該在一個單獨的itemrenderer中實現。您無法設置多個渲染器。

這裏是一個receipe這可怎麼實現的:http://cookbooks.adobe.com/post_How_do_I_create_a_Tree_itemRenderer_-62.html

override public function set data(value:Object):void 
     { 
      if(value != null) 
      { 
       super.data = value; 
       if(TreeListData(super.listData).hasChildren) 
       { 
        setStyle("color", 0x660099); 
        setStyle("fontWeight", 'bold'); 
     } 
     else 
     { 
      setStyle("color", 0x000000); 
      setStyle("fontWeight", 'normal'); 
     } 
      } 
     } 

,「如果」語句顯示,如果你有內部節點或沒有。生成數據提供者時,您還可以指定其他屬性。

+0

謝謝,我實現了主要的itemRenderer有2種擴展類和被覆蓋的功能組數據做切換。但是,我如何確定節點深度? – luccio 2010-03-21 15:33:40

+0

只是運行在一些問題... 我想這樣做在設置數據(): if(depth == 1){item} {itemRenderer = itemRendererOne;其他{ } else {itemRenderer = itemRendererTwo; } 但它改變了整個樹中的itemRenderer。是否有可能只爲特定項目切換它? – luccio 2010-03-22 21:00:16

相關問題