Первое, что я хотел бы попробовать, это использовать textField.htmlText вместо textField.text и посмотреть, не решит ли это проблему (хотя я был бы удивлен, если бы это произошло).
Второй потенциальный способ исправить это (и это на самом деле не очень красиво) - это ручная переноска слов. Следующее в AS3, потому что это то, что я использую. Я оставлю это вам, чтобы преобразовать его в AS2, но я полагаю, что это также возможно в AS2.
var text : String = "some text here";
var textField : TextField = new TextField();
textField.wordwrap = false;
textField.multiline = false;
textField.autosize = false;
textField.width = MAX_TEXT_WIDTH;
//other formatting stuff
var words : Array = text.split(" ");
var line : String = words[0];
textField.text = words[0];
var lines : Array = new Array();//will contain all lines
for(var i : int = 1; i < words.length; ++i)//start at second word
{
textField.text += " " + words[i];//try adding another word to the line
if(textField.textWidth > MAX_TEXT_WIDTH)//overflowed line
{
lines.push(line);
line = words[i];
textField.text = line;
}
else//doesn't overflow, line is still valid
{
lines += textField.text;
}
}
lines.push(line);
var text : String = lines[0];
for(i = 1; i < lines.length; ++i)
{
text += "\n" + lines[i];
}
textField.multiline = true;
textField.height = lines.length * HEIGHT_PER_LINE;//HEIGHT_PER_LINE can be found using getLineMetrics and
//adding gutter pixels to the height - might have to
//play a little with this
textField.text = text;
Не уверен, что это компилируется (вероятно, он не совместим с AS2), но это должно дать общее представление. Сделайте перенос слов самостоятельно и посмотрите, работает ли это. Также убедитесь, что форматирование применяется к тексту при проверке textWidth. Я думаю, вам нужно вызывать setTextFormat (myTextFormat) каждый раз, когда вы меняете значение textField.text.
Я также видел, что, по-видимому, многострочный может не работать в этой версии. В этом случае вам, возможно, придется создать новый объект TextField для каждой строки и сместить их значения y, чтобы он выглядел так, как будто это тот же TextField (надеюсь, вы не используете границы или фоны в своих textFields, если это так). )