PDA

Просмотр полной версии : Высота текстового поля программно


sig
31.10.2002, 12:25
Хай всем!
Есть такой трабл. Существует список линков (гружу XML).
Сам шаблон выглядит как 2 текстовых поля - сверху сам линк, снизу описание.
Дык вот мне надо сделать, чтоб высота поля с описанием была четко по количеству текста, без всяких скроллов.
P.S. Во Flash 5 !!! В 6-ом сам знаю как сделать :)

Max N Chubin_
31.10.2002, 13:38
штатными средствами никак!!!
Блин, вопрос этот всплывает с частотой в неделю!
Если у тебя есть MX и ты в курсе как это сделать, так нафига это мучать в 5ке?
Ну а если нет возможности работать в MX, то тебе остается только написать простую функцию для определения кол-ва строк в поле с известной шириной. Будешь вставлять для описания поле заведомо большей высоты, но край текста определить сможешь.

Алгоритм такой:
1. определяешь сколько символов влазит в одну строку.
2. разбиваешь загруженый текст на слова.
3. Начинаешь суммировать длины слов (не забывая про пробелы между ними).
4. После очеедного суммирования проверяешь - длина полученной строки меньше максимального кол-ва знаков в строке(МКЗС)?
5. как только получаешь что сумма превышает МКЗС, наращиваешь счетчик строк +1, сумму сбрасываешь в нуль, а последнее слагаемое прибавляешь к новой сумме (т.е. слово было перенесено на новую строку).
6. возвращаешься к п. 3 до тех пор пока не переберешь все слова.

в итоге получаешь точнейшую функцию подсчета строк в текстовом поле.

ЗЫ: есть одна маленькая неувязочка(читай погрешность) - ширина символов разная,так что перенос слова может случиться, хотя по формуле должно влезть буква в букву, на этот случай рекомендую определять ширину текстового поля по самому широкому символу.

Успехов!
Думаю что реализовать это тебе по силам.