2011-10-03 27 views
0

我有一個坐在分隔框中的樹組件。如果分割框被調整大小,我想在節點標籤上顯示'...'。我有一個自定義的itemrenderer,並且一直在尋找labelFunction屬性以及在自定義的itemrenderer中嘗試各種方法。沒有任何喜悅。 任何指針,將不勝感激。樹中的標籤上設置truncateToFit

繼承人一些示例代碼FO我如何設置它...

我定義了一個樹...

<mx:Tree 
id="tree" 
dataProvider="myData" 
labelFunction="treeNodeLabel" 
width="100%" height="100%" 
click="handleClick(event)" 
mouseMove="handleMouseMove(event)" 
itemRollOver="handleItemOver(event)" 
itemRollOut="handleItemOut(event)" 
doubleClickEnabled="true" 
doubleClick="handleDoubleClick(event)" 
iconFunction="customIcon" 
dragEnabled="true" 
dropEnabled="true" 
dragMoveEnabled="true" 
dragOver="onDragOver(event)" 
dragStart="onDragStart(event)" 
dataDescriptor="{new DiagramTreeDataDescriptor()}" 
itemRenderer="myCustomeRenderer" 
borderStyle="none" 
> 

的自定義呈現是延伸檢測TreeItemRenderer的ActionScript類。 ..

public class myCustomRenderer extends TreeItemRenderer { 

public function myCustomRenderer() { 
    super(); 
} 

/** 
* Create child objects of the component. 
*/ 
override protected function createChildren():void { 
    super.createChildren(); 
    createIcon(); 
    addListeners(); 
    addChild(Icon1); 
    addChild(Icon2); 
} 


private function createIcon() : void { 
    ... 
} 

private function addListeners() : void { 
    ... 
} 

private function Icon1Click(event: MouseEvent):void { 
    ...    
} 

private function Icon2Click(event: MouseEvent): void { 
    ... 
} 

private function onLabelMouseOver(event : MouseEvent):void { 
    ... 
} 

private function onLabelMouseOut(event : MouseEvent):void { 
    ... 
} 

private function getDescription(node : XML):String { 
    ...    
} 

override protected function updateDisplayList(...) { 
    ... 
} 

override public function set listData(value:BaseListData):void { 
    ... 
} 

}

+0

你在渲染器中使用s:Label嗎? – Exort

+0

嗨,我是相當新的靈活,所以如果我有點含糊道歉!答案是否定的(我想!)。雖然我有一個cutom渲染器,但它用於控制其他內容,例如單擊也顯示在每個節點上的圖標。我想我使用的是默認的顯示方式。例如,我在我的自定義渲染器中引用了super.label,並且它「apprears」是一個TextField(它不支持截斷)。對不起,如果這是模糊 – fatlog

+0

也許你可以發佈一些代碼,使事情更清晰 – Exort

回答

0

您可以設置

labelDisplay.maxDisplayedLines = 1 

此外,爲了能夠截斷的labelDisplay的必須有一個指定的寬度。我不知道渲染器中的默認行爲是什麼。您可以嘗試首先在渲染器上設置寬度(絕對或百分比)。如果不起作用,請將其設置在labelDisplay上。

+0

noob問題!我在哪裏把這個?順便說一句,我目前卡住使用flex sdk 3.2 – fatlog

+0

哦,這意味着你沒有火花組件。我對mx組件不瞭解太多,所以我無法真正幫助你解決這個問題。對不起 – Exort

+0

不用擔心。就像我說的,我用sdk 3.2「卡住」了。 :( – fatlog