Форум 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)
-   -   определить размер для dynamic field (http://www.flasher.ru/forum/showthread.php?t=120248)

Pasquill 15.01.2009 14:21

определить размер для dynamic field
 
приветствую всех, кто читает
вопрос об очень простом - но увы, никак не могу найти

из внешнего файла во flash загружается текст в динамическое поле
количество символов текста заранее не известно
определяю его с помощью length
ширина поля определена и не изменяется
вопрос:
как, зная все предыдущие данные, определить высоту поля (прокрутка не нужна) ?
есть ли какая-то определенная "формула", учитываюшая шрифт или его размер?

Волгоградец 15.01.2009 14:53

Ну так если вы знаете ширину поля, длину строки и размер шрифта, то высота будет равна:
Код:

(длина строки / ширина поля) * размер шрифта

Pasquill 15.01.2009 15:05

да, этот вариант хорош, когда нету нескольких абзацев, ведь считается именно количество символов, а до конца строчки перед новым абзацем - нет ни пробелов, ничего =(

cdc7600 15.01.2009 16:15

есть похожая проблем , немного, пытаюсь сделать хинты к мувикам, текст хинтов подгружается с помощью хмл , как сделать динамически изменяющийся фон в зависимости от длины строки?

chingachgoog 15.01.2009 16:24

Проще сделать автосайз поля и через кадр посмотреть его высоту, чем мучиться ее высчитывать через дурацкий getTextExtent - все равно ошибетесь.

Волгоградец 15.01.2009 16:38

Можно так:
Код:

txt_txt._width = 100;
txt_txt.border = true;
txt_txt.multiline = true;
txt_txt.wordWrap = true;
txt_txt.text = "ggg" + "\n" + "gggggggggggggghhhhhhhhhhhhhh" + "\n" + "hhhhhhhhhhhhhhh";

var frmt:TextFormat = txt_txt.getTextFormat();
var metrics:Object = frmt.getTextExtent(txt_txt.text);
txt_txt._height = txt_txt.textHeight + metrics.descent;


Pasquill 15.01.2009 17:36

getTextExtent вроде нормально работает
всем спасибо, кто подсказывал

chingachgoog 15.01.2009 18:39

Цитата:

Сообщение от Pasquill (Сообщение 790909)
getTextExtent вроде нормально работает

Не надейтесь...
Хотя если большая точность не нужна, то подойдет и он, иначе - неизбежный сбой, особенно на машинах с другой конфигурацией.
(Частично это можно предотвратить, если антиалиас выставить в анимейшн.)

Pasquill 15.01.2009 19:30

беру с небольшим запасом - большая точность не нужна, главное что бы было не меньше, чем надо


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

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