【问题标题】:Flex 4.6 - Visible Height of Spark LabelFlex 4.6 - Spark 标签的可见高度
【发布时间】:2011-12-09 22:48:31
【问题描述】:

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

(对于名为 Title 的 spark 标签)我试过了:

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

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

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

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


诚然,我对 Flex API 不是很熟悉,但在翻阅手册很长一段时间后,我仍然无法以适当的间距放置此标题标签。任何帮助将不胜感激。

【问题讨论】:

  • 您可能已经知道这一点,但按照惯例,AS3 类名是 CamelCase,实例名是 headlessCamelCase。

标签: apache-flex actionscript flex4 flexbuilder


【解决方案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>

【讨论】:

  • 您可能已经知道这一点,但按照惯例,AS3 类名是 CamelCase,实例名是 headlessCamelCase。
  • 显然调用调整大小监听器是正确更新高度值所需要的!谢谢!! :)
【解决方案2】:

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

【讨论】:

  • 在数据加载完成侦听器datasource.addEventListener(ResultEvent.RESULT,getheights); 之后完成跟踪 - 还 datasource.addEventListener(FlexEvent.UPDATE_COMPLETE,getheights); 加载未定义属性 FlexEvent 的错误访问
  • @ina import mx.events.FlexEvent; 你在用这个吗?
  • 添加了导入,但是,即使加载数据也不会触发 UPDATE_COMPLETE...
猜你喜欢
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
相关资源
最近更新 更多