Я сам несколько раз сталкивался с этим. Лучший способ получить динамическое изменение размера <mx:Text>
- это оставить высоту вне текста, а затем указать процентную высоту 100% для включенных VBox, HBox и т. Д. вы:
<mx:VBox width="100%" height="100%">
<mx:Text text="Your really long text goes here." width="100%"/>
</mx:VBox>
Поскольку это что-то вроде хака, ваш пробег может варьироваться.
Редактировать
Если вы хотите расширить вышеприведенный пример, чтобы упростить обслуживание кода, вам следует обратиться к классу TextLineMetrics. Это позволит вам измерить ширину и высоту вашего текста, принимая во внимание шрифт, размер и т. Д. Документы для TextLineMetrics можно найти здесь . Чтобы использовать приведенный выше пример, вам нужно сделать что-то вроде следующего:
var textItem:Text = new Text();
var metrics:TextLineMetrics = textItem.measureText( value );
var len:int = metrics.width;
var lines:int = int(len/textItem.width) + 1;
var height:int = lines * metrics.height;
textItem.height = height;