Flex - 在Canvas中布置文本

时间:2008-10-12 14:28:57

标签: flex actionscript-3 mxml

这是我一直遇到的问题:

我有很多情况需要使用样式容器显示一些文本,如下所示:

<mx:Canvas>
     <mx:Text text="{text}" left="5" verticalCenter="0" right="5" />    
</mx:Canvas>

正如您所看到的 - 文本受到画布左右边距的限制,我没有为文本控件指定高度,因为我希望它在向其添加文本时垂直增长。原因是 - 如果有一行文本我希望它显示在画布的中心但是如果有两行或三行文本我希望文本控件显示那两行或三行文本。

然而,不断发生的是,它只会显示一行文本 - 无论我在其上调用invalidateSize()多少次或容器。我该怎么办?

CAVEAT:画布的高度和宽度由实例化它的组件设置(这全部包含在自定义组件中)所以我无法显式设置文本控件的宽度或高度......

注意:好吧,也许这是一个简单的解决方法,因为当我输入这个问题时我想出来了 - 但是,这里有机会回答一个简单的问题!?

2 个答案:

答案 0 :(得分:2)

如果您想要自动换行,Text组件需要宽度。如果您使用了带有换行符的字符串,它将按预期增长,而不会有宽度。对你来说,使用:

编辑:好的,您希望它在不同大小的画布中居中。然后你可以:

<mx:HBox 
    width="500"
    paddingLeft="5"
    paddingRight="5">
    <mx:Spacer width="100%" />
    <mx:Text 
        width="100%"
        text="{text}" />
    <mx:Spacer width="100%" />
</mx:HBox>

答案 1 :(得分:1)

查看TextArea组件。

相关问题