Коллеги, очень сложный и важный вопрос, прошу помощи.
Задача следующая - из swf подгружается графика с текстовыми полями. Обычные поля выравненные по центру, размером скажем 20pt . Задача уменьшать размер шрифта или увеличивать в зависимости сколько символов влезает, вообщем чтобы текст не был обрезанным.
Сделал вот такой вот метод для этого :

Код AS3:
public static function updateFormat(tf:TextField, size:int):void
{
var format:TextFormat = tf.getTextFormat();
format.size = size;
tf.setTextFormat( format );
}
public static function gen(tf:TextField , useY:Boolean = false):void
{
var format:TextFormat = tf.getTextFormat();
var initSize:int = int(format.size);
if (tf.textWidth > tf.width - 20)
{
while ( tf.textWidth > tf.width - 20 )
{
initSize--;
if(useY) tf.y += 1;
updateFormat(tf, initSize);
}
}
else if (tf.textWidth < tf.width - 20)
{
while ( tf.textWidth < tf.width - 20 )
{
initSize++;
if(useY) tf.y += 1;
updateFormat(tf, initSize);
}
}
}
Результат вроде есть, но сами понимаете не очень точный. Но это пол беды. Главная беда в том, что текст при изменении - меняет свой формат обратно, так как он подгруженный и формат у него вроде как изменить нельзя навсегда ( если не ошибаюсь) . А в некоторым моменты врмени текст меняется как счетчик скажем за 1 сек от 0 до 100. И каждые 30 мс вызывать метод описанный выше - будет затратно.
Очень нужна ваша помощь. Спасибо