2011-02-18 75 views
0

我将代码项目从Flash AS 3转换为Flex 4.我遇到了TextField控件的问题。放置在其中的文本不会显示。我已经彻底检查过了,它的宽度总是等于4.无论放置什么文本,它总是很窄。我知道,在Flex中,我应该为所有的组件提供的宽度和高度明确但也存在一些问题:TextField在Flex中的大小

  1. 我不知道这样的字段的初始大小 - 我希望它能够自动判断基于其大小在它存储的文本上
  2. 有几个其他容器包含它,它们也应该自动调整大小,因此它们具有正确的大小以显示TextField的所有内容。

感谢

回答

1

首先,我假设您使用的是UITextField。如果没有,请使用那个。

如果不行,请将autoSize属性设置为TextFieldAutoSize.RIGHT,并将宽度设置为undefined。如果你的文本有多行,或者文字不符合一行,但你希望全部显示,你需要将字段的宽度设置为一个百分比,通常为100%(百分比宽度来自actionscript,宽度从mxml),并保持高度不确定。

如果有任何需要调整大小的容器,我建议使用VBox/HBox而不是你正在使用的任何东西,并将宽度(也可能是高度)也未定义。

标签是使用已设置的TextFields的组件,只能在一行上调整其大小。即使你不想使用它们,你也可以检查它们的源代码。

文本组件与Label类似,但允许多行。再次,我建议检查他们的源代码。

+0

相信我与否但你真棒!:-)非常感谢。它已经预先拯救了我的一天! – 2011-02-18 10:49:08

0

也许你应该使用一个标签或替代的TextInput一个文本框的。 举例如<s:Label text="my text" />

+0

好点但它有一个小问题 - 我不得不重写太多的代码行,因为项目使用textFormat和许多其他功能,这些功能不是直接可用于标签或TextInput:/ – 2011-02-18 09:20:56