PDA

Просмотр полной версии : Возможна ли рисование границ строк в многострочном TextField?


kichSman
15.04.2010, 14:17
Собственно вопрос кажется не сложным, но когда взялся за его реализацию встал в тупик.

Есть многострочный TextField, т.е. тот, у которого установлены

txt.wordWrap = true;
txt.multiline = true;


Так вот, хочется программным путем нарисовать нижнюю границу у каждой строки этого поля, чтобы получилось как будто тетрадка в линейку.

Помогите с вариантами решения данной задачи.

in4core
15.04.2010, 15:00
Идейно никак. Но есть обходные пути. Например текст у тебя находится на координатах 20*20. Вычисляешь. И программно начинаешь рисовать линии дублируя их, от 20 с интервалом = расстоянию между строками файлда. Можно также нарисовать линию вручную и через аттач сделать тоже самое.

Волгоградец
15.04.2010, 15:02
Самый простой вариант - использовать htmlText с подчеркиванием. А по правильному - надо у каждой линии брать TextLineMetrics методом getLineMetrics(), находить baseline и чертить нужную линию.

in4core
15.04.2010, 15:07
Я же предложил отличный вариант с аатачем! Лучше не придумаешь и быстрее

kichSman
15.04.2010, 15:09
Самый простой вариант - использовать htmlText с подчеркиванием. А по правильному - надо у каждой линии брать TextLineMetrics методом getLineMetrics(), находить baseline и чертить нужную линию.

А разве это возможно на AS2 тем более, в Macromedia 8?

Добавлено через 4 минуты
Я же предложил отличный вариант с аатачем! Лучше не придумаешь и быстрее

Уже пробовал способом программного рисования через вычисление координатов, но проблема сразу появляется в том, что когда строк оченьььь много, то при отклонении координатов рисуемых линий даже на 0,1 пиксель, то самый низ съезжает довольно значительно.

Кстати, аттач не очень хороший вариант в плане веса, проще на родительском классе нарисовать через цикл

Tahion
15.04.2010, 15:14
Возможно.

А можно просто после каждой строки рисовать линию т.е после значительного изменения textHeight. В координатах новой линии но придется текст порциями как бы добавлять).

Ноо вообще вариант Волгоградец не сложный и лучший только расстояние между линиями одинаковое поэтому размер линии и лайн спейсинг нужно всего 1 раз замерить а не каждый раз