Как автоматически изменить размер шрифта, чтобы соответствовать размеру/ширине текстового поля?
Я пытаюсь, чтобы текст автоматически менял свой шрифт, чтобы заполнить весь текстовый компонент.
Мой текущий подход заключается в том, чтобы установить размер шрифта в зависимости от количества текстовых символов и текстовых компонентов по высоте и ширине, но я не могу найти правильные коэффициенты, чтобы сделать эту работу красивой.
Есть ли более простой или элегантный способ?
Работает ли 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);
}
}