2011-12-09 41 views
1

我試圖確定在運行時變爲多行的Spark標籤的高度(由於設置了width屬性),以計及文本溢出。Flex 4.6 - Spark Label的可見高度

(對於火花標籤命名的標題)我曾嘗試:

Title.measureText(Title.text).height - 這似乎只返回一行的高度。 (由於不同的屏幕尺寸和字體渲染,我不知道文本會溢出到多少行......)

Title.height - 這似乎返回標籤大小的高度在

這兩個屬性上面返回不變的值即使運行時間多行文本流)-adjusted時長不同的文本長度/多行被填充的.text

真的沒有辦法確定確切溢出的高度火花標籤


我固然不是熟悉的Flex的API,但淘手動相當長的一段時間後,我仍然無法把這個標題標籤,以適當的間距。任何幫助,將不勝感激。

+0

你可能已經知道這一點,但傳統上,AS3類名是駝峯和實例名稱是headlessCamelCase。 –

回答

1

我覺得星火標籤resize活動將是有用的。
只是嘗試這個示例應用程序這可能會幫助你

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" > 

<fx:Script> 
    <![CDATA[ 
     public var Height:String=""; 
     public function Resize():void 
     { 
      Height=lblLabel.height.toString(); 
      txtText.text="Label Height: "+Height; 
     } 
     public function AddText():void 
     { 
      lblLabel.text += lblLabel.text; 
     } 


    ]]> 
</fx:Script> 
    <mx:Text id="txtText" x="46" y="44" width="200"/> 
    <s:Label id="lblLabel" text="Label Text " x="46" y="99" width="200" resize="Resize()"/> 
    <s:Button id="btnClick" label="AddText" click="AddText()" x="199" y="43"/> 
</s:Application> 
+0

您可能已經知道這一點,但傳統上,AS3類名稱是CamelCase,實例名稱是headlessCamelCase。 –

+0

顯然調用調整大小監聽器是正確更新高度值所需的!謝謝!! :) – ina

0

如果我理解正確你的問題,你可以聽mx.events.FlexEvent.UPDATE_COMPLETE

+0

追蹤完成後數據加載完成監聽器'datasource.addEventListener(ResultEvent.RESULT,getheights);''也''datasource.addEventListener(FlexEvent.UPDATE_COMPLETE,getheights);'加載錯誤訪問的未定義財產FlexEvent – ina

+0

@ina 'import mx.events.FlexEvent;'你在用這個嗎? –

+0

添加了導入,但即使數據加載時也不觸發UPDATE_COMPLETE ... – ina