Я предполагаю, что ваша проблема - TextField.defaultTextFormat.
просто настройте объект TextFormat, затем в текстовом поле установите текстовый формат по умолчанию, и он должен сохранять формат текста независимо от того, что вы с ним делаете.
Вы видите, что когда вы в значительной степени изменяете текстовое поле, форматирование текста сбрасывается, и вы должны повторно применить его. Однако, если вы установите текстовый формат по умолчанию, он позаботится об этом автоматически.
Вот маленький грязный прототип.
package src
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class Main extends Sprite
{
private var tx:TextField;
private var txf:TextFormat;
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, initMain);
}
private function initMain(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, initMain);
// setup a text format so you can keep your text the same all the time.
txf = new TextFormat('Arial', 12, 0x000000);
tx = new TextField();
tx.width = 50;
tx.text = "I want this text not to wrap so it will be resized at runtime."
// Turned this on for testing purposes only.
tx.wordWrap = true;
tx.defaultTextFormat = txf; // This line is the x factor most likely.
tx.x = 100;
tx.y = 100;
addChild(tx);
stage.addEventListener(MouseEvent.CLICK, toggleTextFieldSize, false, 0 ,true);
}
private function toggleTextFieldSize(e:MouseEvent):void
{
if (tx.width == 50)
{
tx.width = 400;
}
else
{
tx.width = 50;
}
}
}
}
Надеюсь, это то, что вы искали.