![]() |
InputText внутри форматированного текста
Есть задача: "Сделать обучающие тесты на Флэше"
Т.е. есть форматированный текст, в который надо вставлять пропущенные буковки и знаки препинания. Текст решил сделать HTML форматированным: Код AS3:
Поля можно вставить таким макаром <img src='inputTextField' id='testimage' hspace = '78' vspace = '-4'>, где inputTextField поле для ввода (лежащее в библиотеке), а циферки 78 и -4, подгонка поля для ввода в нужное место, а в ручную каждое поле двигать на х пикселей вправо не вариант.... Вопрос: Может я пошел не тем путем? Что посоветуете? Может есть уже готовые решения? |
Можно использовать TextField.getCharBoundaries(charIndex:int), а поля ввода размещать поверх TextField в соответствии с полученными координатами. При прокрутке или изменении размера поля обновлять. В справке, кстати, пример неплохой есть.
|
SamFR, премного благодарен!
Это именно то что нужно... я этот метод изначально прочитал и не так понял, я думал что он возвращает прямоугольник описывающий размер символа. Ещё раз спасибо!!! Блин, пол дня просидел с этой ерундой. |
Не за что :)
Только учтите, что в случае, когда поле покрывает несколько символов, вам придётся вызывать этот метод как минимум два раза – для первого из них и для последнего, и вычислять результирующий прямоугольник как минимальный, содержащий оба полученных. Также придётся решить, что делать в случае, когда символы оказались расположены на разных строках (TextField.getLineIndexOfChar()), либо как этого избежать. Добавлено через 2 минуты Да, ещё шрифт тех символов, которые должны быть замещены, нужно сделать моноширинным для того, чтобы введённые символы совпадали по ширине с замещаемыми. |
| Часовой пояс GMT +4, время: 23:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.