PDA

Просмотр полной версии : Масштабирование текста в Container?


ShockWave1024
12.04.2007, 20:23
Столкнулся с такой задачей:
Нужно вписать текст компонент в контейнер с помощью scaleX, scaleY.
То есть создать его в контейнере и упереть сторонами в стороны контейнера. Соотношение сторон у контейнера и у самого текста могут менять в очень широких пределах.
Подбор коэфициента масштабирования для шрифта самого текста, ничего не дал, там жуткие нелинейные скачки у различных отступов, десцентов, акцентов, получить всегда одинаковый результат невозможно.
Метод scale9Grid, почему то не срабатывает для всех случаев, всегда ошибка: -
var r:Rectangle = new Rectagle(1,1,100,100);
comp.scale9Grid = r;
Not enought parameters!
может это баг флекса?

даже простейшее вычисление коэффициента для множителя scale,
допустим:
var sca:Number = canvas.height / text.height;
text.ScaleX = sca;
text.ScaleY = sca;
не дает нормального маштабирования, все время текст выползает за контейнер!
заранее спасибо всем откликнувшимся!

baron27
13.04.2007, 03:19
можно попробовать CachedLabel, который переделывает текст в битмап, который скейлится потом нормально. класс есть в рыбъем глазе
http://www.quietlyscheming.com/blog/components/fisheye-component/

ShockWave1024
13.04.2007, 10:42
так ведь и для битмапа прийдется как то маштаб просчитывать ...

baron27
13.04.2007, 11:18
ну да. но наверное там не будет всяких
>> жуткие нелинейные скачки у различных отступов, десцентов, акцентов

или я не понял тебя.