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

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

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

Регистрация: Feb 2006
Сообщений: 148
Отправить сообщение для murz с помощью ICQ
По умолчанию Предельный размер шрифта в строке

Всем привет.
Может кто подскажет как решить следующую задачку:
Есть абстрактная строка(прямоугольная область) с заданными шириной и высотой.

Вопрос: — как узнать максимальный размер шрифта для этой строки(области)

Старый 16.03.2009, 00:54
serenkiy вне форума Посмотреть профиль Отправить личное сообщение для serenkiy Найти все сообщения от serenkiy
  № 2  
Ответить с цитированием
serenkiy
 
Аватар для serenkiy

Регистрация: Jan 2009
Сообщений: 60
Отправить сообщение для serenkiy с помощью ICQ
попробуйте воспользоваться тем, что 1 px = 0.7471763 pt.
Т.е. вы умножаете высоту на 0.7471763 и получаете искомый размер шрифта. Сейчас параллельно опробую идею у себя.

Старый 16.03.2009, 01:20
murz вне форума Посмотреть профиль Отправить личное сообщение для murz Найти все сообщения от murz
  № 3  
Ответить с цитированием
murz

Регистрация: Feb 2006
Сообщений: 148
Отправить сообщение для murz с помощью ICQ
Эх, это не подходит. Подойдет если переводить пункты в пикселы.
Код AS3:
var txt:TextField = new TextField();
 
//txt.embedFonts = true;
txt.autoSize = TextFieldAutoSize.LEFT;
txt.border = true;
 
txt.appendText("bbbggg");
txt.setTextFormat(new TextFormat("Arial", 50));
addChild(txt);
var summW:Number = 0;
for (i = 0; i < txt.getLineLength(0); i++) {
var rect:Rectangle = txt.getCharBoundaries(i);
trace("Num:", i, txt.getLineText(0).charAt(i), rect);
summW += rect.width;
}
var tm:TextLineMetrics = txt.getLineMetrics(0);
var avarange:int = NumberUtilities.round(summW / txt.getLineLength(0), 1);
trace("средняя ширина Литеры:",avarange, "max:",(NumberUtilities.round(52/avarange)));
trace("LineMetrics", "w", tm.width, "h", tm.height, tm.ascent, tm.descent, tm.leading);
если высоту умножить на тот койффициент получиться кегль 43px

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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