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

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

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

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

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

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

1 Ответ

21 голосов
/ 01 мая 2009

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

function Autosize(txt:TextField):void 
{
  //You set this according to your TextField's 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);
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...