Автоматическое масштабирование текста TLF в AS3 - PullRequest
0 голосов
/ 02 сентября 2010

Мне нужно решение ActionScript, которое позволит динамическому тексту перетаскиваться в текстовое поле с предварительно определенными размерами (x, y, ширина, высота), а затем масштабировать текст вверх или вниз, чтобы он настолько большой, насколько это возможно, без прокрутки. Wordwrap будет автоматическим и не будет разрывов абзацев.

У меня есть рабочая модель, использующая классический текст Flash, но я бы хотел использовать встроенный стиль, который обеспечивает TLF. Я просто еще не совсем сосредоточился на всех возможностях TLF.

Кто-нибудь знает, есть ли уже существующее решение этой ситуации - или, возможно, может направить меня в правильном направлении?

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

@ phil: Это должно помочь: http://aaronhardy.com/flex/size-text-to-container/

Демонстрация онлайн, щелкните правой кнопкой мыши для получения исходного кода.

1 голос
/ 02 сентября 2010

Хм - это должно работать, но я не уверен, насколько точен размер шрифта TLF ... В любом случае:

newFormat:TextFormat = new TextFormat();
newFormat.size *= myText.width / myText.textWidth;
myText.setTextFormat(newFormat);

Теперь - это в основном создает объект TextFormat и устанавливает размер его шрифта равным myText ( TextField ) ширина контейнера (максимальная ширина), разделенная по фактической ширине текста. Опять же - если размер шрифта TLF НЕ такой точный, строка размера должна быть:

newFormat.size *= Math.round(myText.width / myText.textWidth * 100) / 100;

100 означает округление до сотых долей.

edit : Я действительно считаю, что этот метод не только намного проще, но и эффективнее ... Я имею в виду - в этом смысл TextField.textWidth ...

...