Flex 4.6 - Spark标签的可见高度

时间:2011-12-09 22:48:31

标签: flex actionscript flex4 flexbuilder

我正在尝试确定在运行时变为多行的Spark标签的高度(由于设置了width属性),以解决文本溢出问题。

(对于名为Title的火花标签)我试过:

Title.measureText(Title.text).height - 这似乎只返回一行的高度。 (由于不同的屏幕尺寸和字体渲染,我事先并不知道文本会溢出多少行......)

Title.height - 这似乎返回标签大小的高度(在运行时为多行文本流重新调整之前)

上面的两个属性都会返回不变的值,即使填写了不同的文本长度/多行长.text

真的没办法确定溢出Spark标签的确切高度吗?


我确实不熟悉Flex API,但经过一段时间的手册搜索后,我仍然无法以适当的间距放置此标题标签。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为Spark标签的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>

答案 1 :(得分:0)

如果我理解你的问题,你可以听mx.events.FlexEvent.UPDATE_COMPLETE