Как автоматически изменить размер шрифта, чтобы соответствовать размеру/ширине текстового поля?

Я пытаюсь, чтобы текст автоматически менял свой шрифт, чтобы заполнить весь текстовый компонент.

Мой текущий подход заключается в том, чтобы установить размер шрифта в зависимости от количества текстовых символов и текстовых компонентов по высоте и ширине, но я не могу найти правильные коэффициенты, чтобы сделать эту работу красивой.

Есть ли более простой или элегантный способ?

Работает ли truncateToFit на Text? Я где-то читал, что это плохо работает.

Изменить: Я забыл упомянуть, что мне хотелось бы, чтобы он масштабировался за максимальный размер шрифта (что, на мой взгляд, 127). Как это делается? Scalex?

Ответ 1

Функция выборок AS3. Вы должны называть его в любое время, когда изменяется содержимое TextField.

function Autosize(txt:TextField):void 
{
  //You set this according to your TextField dimensions
  var maxTextWidth:int = 145; 
  var maxTextHeight:int = 30; 

  var f:TextFormat = txt.getTextFormat();

  //decrease font size until the text fits  
  while (txt.textWidth > maxTextWidth || txt.textHeight > maxTextHeight) {
    f.size = int(f.size) - 1;
    txt.setTextFormat(f);
  }

}