![]() |
Координаты строк текста - как найти?
У меня есть текстовое multiline-полe (TextField). В нём - разного рода текст (может отличаться шрифт, цвет, размер и. т. д.), разбитый на линии. Мне хотелось бы четко узнать координаты и высоту каждой линии текста. Использовал TextFormat.getTextExtent() для каждой линии, пробовал также разбивать на кусочки с отличающимся TextFormat-ом, а потом считать максимальные значения - все не работает. Накапливается какая-то ошибка, начиная со второй линии текста.
Пробовал использовать класс TextMetrics: http://blog.greensock.com/textmetrics/ Однако он работает только для одинаковых шрифтов/размеров... Может кто сталкивался? Помогите, плиз... Заранее благодарен. |
переходите на AS3
|
Цитата:
|
Тогда даже не знаю что и посоветовать...
Делал чат на AS2 давно, тоже чего только не перепробовал... Но сделал)) А вам для чего? |
Мне нужно конвертировать содержимое TextField в SVG-формат, а SVG не поддерживает многострочный текст, т.е. нужно выводить каждую строку отдельно.
|
не знаю, ссори :(
|
Цитата:
|
Мне всё нужно, но главное - это координаты левого верхнего угла строки, чтобы на каждую строку в TextField можно было создавать элемент <text> в SVG. Соответственно, если строка содержит несколько отличающихся форматов, то я использую <tspan> внутри <text>. Для single line TextField всё написано и работает, а теперь захотелось использовать многострочный текст. Поэтому-то мне и нужны координаты левых верхних углов строк, их ширина и высота.
|
Снимаете битмапдату, выделяете первый символ, снимаете еще одну битмапу, теперь анализируете пиксели первой и второй битмапы и находите верхний левый и нижний левый угол. Продолжаете выделять символы от первого до n, пока не определите, что произошел перевод строки. Ну и тд.
|
Вдогонку к посту iNils'а.
Используйте BitmapData#getColorBoundsRect для уточнения координат. |
| Часовой пояс GMT +4, время: 08:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.