Просмотр полной версии : Возможна ли рисование границ строк в многострочном TextField?
kichSman
15.04.2010, 14:17
Собственно вопрос кажется не сложным, но когда взялся за его реализацию встал в тупик.
Есть многострочный TextField, т.е. тот, у которого установлены
txt.wordWrap = true;
txt.multiline = true;
Так вот, хочется программным путем нарисовать нижнюю границу у каждой строки этого поля, чтобы получилось как будто тетрадка в линейку.
Помогите с вариантами решения данной задачи.
Идейно никак. Но есть обходные пути. Например текст у тебя находится на координатах 20*20. Вычисляешь. И программно начинаешь рисовать линии дублируя их, от 20 с интервалом = расстоянию между строками файлда. Можно также нарисовать линию вручную и через аттач сделать тоже самое.
Волгоградец
15.04.2010, 15:02
Самый простой вариант - использовать htmlText с подчеркиванием. А по правильному - надо у каждой линии брать TextLineMetrics методом getLineMetrics(), находить baseline и чертить нужную линию.
Я же предложил отличный вариант с аатачем! Лучше не придумаешь и быстрее
kichSman
15.04.2010, 15:09
Самый простой вариант - использовать htmlText с подчеркиванием. А по правильному - надо у каждой линии брать TextLineMetrics методом getLineMetrics(), находить baseline и чертить нужную линию.
А разве это возможно на AS2 тем более, в Macromedia 8?
Добавлено через 4 минуты
Я же предложил отличный вариант с аатачем! Лучше не придумаешь и быстрее
Уже пробовал способом программного рисования через вычисление координатов, но проблема сразу появляется в том, что когда строк оченьььь много, то при отклонении координатов рисуемых линий даже на 0,1 пиксель, то самый низ съезжает довольно значительно.
Кстати, аттач не очень хороший вариант в плане веса, проще на родительском классе нарисовать через цикл
Возможно.
А можно просто после каждой строки рисовать линию т.е после значительного изменения textHeight. В координатах новой линии но придется текст порциями как бы добавлять).
Ноо вообще вариант Волгоградец не сложный и лучший только расстояние между линиями одинаковое поэтому размер линии и лайн спейсинг нужно всего 1 раз замерить а не каждый раз
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.