Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.10.2016, 21:31
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию Изменение размера поля - динамически

Коллеги, очень сложный и важный вопрос, прошу помощи.

Задача следующая - из 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 мс вызывать метод описанный выше - будет затратно.
Очень нужна ваша помощь. Спасибо
__________________
Марк Tween


Последний раз редактировалось dimarik; 10.10.2016 в 21:01. Причина: форматирование кода
Создать новую тему   Часовой пояс GMT +4, время: 16:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:18.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.