![]() |
Как подогнать размер шрифта под размер текстового поля
В AS создается текстовое поле txt, к торорому применяется форматирование FRM, согласно которому размер шрифта текста равен 20:
Код AS1/AS2:
|
Как-то нелогично подгонять шрифт под поле. Обычно наоборот делается.
|
Создайте мувиклип, в нем текстовое поле, а уже мувиклип растягивайте как угодно - хоть с сохранением пропорций, хоть без (если будете искажать пропорции, то, наверное, для этого понадобится embed символов).
Ну или как вариант - создайте временное текстовое поле с autosize, вписывайте в него последовательно нужный текст со все бОльшим размером. Как только размеры поля превысят заданные - запоминайте последний "удачный" размер и его используйте. |
Объясню немного по-другому.
Имеется swf, в котором с помощью createTextField создается 100 тектовых полей различной ширины. В эти поля вставляется одинаковый текст. Нужно, чтобы этот текст был растянут во всё поле и не получался многострочным. Первоначально вся 100 делается вручную и для каждого поля прописывается свой размер шрифта. Но внезапно появилась необходимость заменить этот текст на другой, более длинный. С помощью поиска и замены я меняю текст и вижу что он весь не влез в одну строку. Как быть? |
Весь вопрос в том что вы понимаете под "растягиванием" - изменение интервала между буквами, изменение размера шрифта, изменение ширины букв... Если размер шрифта - то создайте 1 поле, помещенное в мувиклип, у мувиклипа есть _xscale, _yscale.
"весь не влез в одну строку. Как быть?" сделать текстовое поле шире. |
Все подгоны и уменьшения не подходят, если смотреть на задачу в общем. (Если не в общем, то лучше просто подгонять размер шрифта, т.е. уменьшать его до тех пора, пока текст полностью не влезет в поле) Потому что можно уменьшить до такого размера, что шрифт будет просто не читаемым.
Возможно, в данной ситуации, лучше выводить подсказку с полным текстом поля, при наведении. |
Title.text = "БЛА БЛА БЛА";
Title._width = Title.textWidth+5; Title - динамическое текстовое поле.. с именем Title |
И что это получится?
|
Задача в том, чтобы не подгонять, не вписывать, не растягивать вручную все 100 текстовых полей. Необходимо что-то типа такого:
РАЗМЕР ШРИФТА = тому РАЗМЕРУ ШРИФТА при котором ШИРИНА ТЕКСТА "БЛА-БЛА-БЛА" (в пикселах) = ШИРИНЕ ТЕКСТОВОГО ПОЛЯ (в пикселах), заданной в this.createTextField(). |
Еще раз - чем вас не устраивает вариант, когда в MovieClip находится TextField с размером шрифта, например, 10, автосайзом. Мувиклипу вы присваиваете _xscale, _yscale на основе того, какую он сейчас имеет ширину и какая ширина нужна?
|
| Часовой пояс GMT +4, время: 14:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.