Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   getTextExtent().textFieldWidth при внедренном шрифте (http://www.flasher.ru/forum/showthread.php?t=107640)

chingachgoog 06.02.2008 14:26

getTextExtent().textFieldWidth при внедренном шрифте
 
Итак, имеется некое динамическое текстовое поле tf:

Код:

slovo="абждшмиклно"

myForm=new TextFormat()
myForm.font="Arial Cyr"
myForm.size=16

trace(myForm.getTextExtent(slovo).textFieldWidth)

tf.autoSize=true
tf.text=slovo

setTimeout(function(){
                                        trace(tf._width)
                                        }, 50)

И вот что забавно: в том случае если шрифт (Arial Cyr) не внедрен в текстовое поле (речь не о программном, а о фактическом внедрении ручками), то выводимые значения расчетной и фактической длины текстового поля равны, но стоит лишь внедрить шрифт, как сразу начинается расхождение, порой сильное. :(

iNils 06.02.2008 15:44

Об этом уже не раз говорили. getTextExtent страшный врун, я бы посоветовал его избегать.

chingachgoog 06.02.2008 15:55

Пока нашел эмпирический поправочный коэффициент, но еще не проверял как он постоянен от объема текста и размера шрифта.

А вообще странно. Такое ощущение, что getTextExtent просматривает системный фонт, а не внедренный. Что же он будет просматривать если в системе вообще не будет данного фонта? Страшно подумать - неужели девайс-фонт???

iNils 06.02.2008 16:25

Не поможет. Он зависит от размера текста, шрифта, символа.


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

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