Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Корректный размер шрифта в TextField (http://www.flasher.ru/forum/showthread.php?t=123181)

incoob 26.03.2009 15:05

Корректный размер шрифта в TextField
 
Доброго времени суток!
Попробовал программно создать TextField с большим размером шрифта:
Код AS3:

                        var style:StyleSheet = new StyleSheet()
                        var item:Object = new Object()
                        item.fontSize = 300
                        item.fontName = "Arial"
                        style.setStyle(".item", item)
                        var txt:TextField = new TextField()
                        txt.autoSize = "left"
                        txt.styleSheet = style
                        txt.htmlText = "<p class='item'>10</p>"
                        addChild(txt)

В блокноте напечатал тот же текст тем же шрифтом с той же высотой. В результате в блокноте размер получившихся символов визуально выглядит раза в 2-3 больше.
Как известно, высота шрифтов во флеше задается в пикселах, а в блокноте в поинтах. Соответствие между этими величинами 1 px = 0.7471763 pt.
Но даже если это учитывать, размер текста в TextField-е все равно значительно меньше.
Где ошибка?
Раньше не обращал на эту особенность внимания так как не использовал шрифтов с большим размером.

mre 26.03.2009 15:21

Используйте scale.

iNils 26.03.2009 15:33

По каким то причинам, программно задаваемый размер не может быть больше 127.

incoob 26.03.2009 16:45

Цитата:

Сообщение от iNils (Сообщение 808690)
По каким то причинам, программно задаваемый размер не может быть больше 127.

А адобовцы знают об этой проблеме? Я в их bugtrack-е ничего подобного не нашел.

Цитата:

Сообщение от mre (Сообщение 808687)
Используйте scale.

Я этим путем уже сам пошел:). Правда с учетом того, что у меня размер шрифта может меняться пользователем динамически, приходится делать дополнительные вычисления...

Код AS3:

                        var fSize:Number = 355 // font size in pixels
                        var txt:TextField = new TextField()
                        txt.autoSize = "left"
                        txt.htmlText = "<p>text</p>"
                        txt.scaleX = txt.scaleY = fSize * 4 / 3 / 12 // default value of font size in TextFormat is 12
                        addChild(txt)


iNils 26.03.2009 16:57

Цитата:

А адобовцы знают об этой проблеме? Я в их bugtrack-е ничего подобного не нашел.
Не знаю. Года 1,5 назад, с этой проблемой __etc столкнулся. Спросите у него чем дело закончилось.

etc 26.03.2009 17:20

Дело, вроде бы, закончилось изменением масштаба контейнера текстового поля.

_Smirnoff 26.03.2009 18:48

http://www.moock.org/blog/archives/000284.html


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

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