2011-02-18 73 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