Форум 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)
-   -   Координаты строк текста - как найти? (http://www.flasher.ru/forum/showthread.php?t=130303)

Vasyaga 23.09.2009 07:54

Координаты строк текста - как найти?
 
У меня есть текстовое multiline-полe (TextField). В нём - разного рода текст (может отличаться шрифт, цвет, размер и. т. д.), разбитый на линии. Мне хотелось бы четко узнать координаты и высоту каждой линии текста. Использовал TextFormat.getTextExtent() для каждой линии, пробовал также разбивать на кусочки с отличающимся TextFormat-ом, а потом считать максимальные значения - все не работает. Накапливается какая-то ошибка, начиная со второй линии текста.
Пробовал использовать класс TextMetrics: http://blog.greensock.com/textmetrics/ Однако он работает только для одинаковых шрифтов/размеров...

Может кто сталкивался? Помогите, плиз... Заранее благодарен.

marat_sa 23.09.2009 08:42

переходите на AS3

Vasyaga 23.09.2009 08:50

Цитата:

Сообщение от marat_sa (Сообщение 852775)
переходите на AS3

Не подходит :)

marat_sa 23.09.2009 08:56

Тогда даже не знаю что и посоветовать...
Делал чат на AS2 давно, тоже чего только не перепробовал... Но сделал))
А вам для чего?

Vasyaga 23.09.2009 09:03

Мне нужно конвертировать содержимое TextField в SVG-формат, а SVG не поддерживает многострочный текст, т.е. нужно выводить каждую строку отдельно.

marat_sa 23.09.2009 09:29

не знаю, ссори :(

iNils 23.09.2009 11:32

Цитата:

а SVG не поддерживает многострочный текст, т.е. нужно выводить каждую строку отдельно.
Так вам нужны координаты строк или содержимое?

Vasyaga 23.09.2009 11:44

Мне всё нужно, но главное - это координаты левого верхнего угла строки, чтобы на каждую строку в TextField можно было создавать элемент <text> в SVG. Соответственно, если строка содержит несколько отличающихся форматов, то я использую <tspan> внутри <text>. Для single line TextField всё написано и работает, а теперь захотелось использовать многострочный текст. Поэтому-то мне и нужны координаты левых верхних углов строк, их ширина и высота.

iNils 23.09.2009 12:06

Снимаете битмапдату, выделяете первый символ, снимаете еще одну битмапу, теперь анализируете пиксели первой и второй битмапы и находите верхний левый и нижний левый угол. Продолжаете выделять символы от первого до n, пока не определите, что произошел перевод строки. Ну и тд.

dimarik 23.09.2009 12:13

Вдогонку к посту iNils'а.
Используйте BitmapData#getColorBoundsRect для уточнения координат.


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

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