![]() |
|
|
|||||
![]() Пытаюсь сделать текстовое поле, которое при вводе текста самостоятельно растягивается по высоте (ширина задана жестко).
Но есть нюанс - хочу вводить не просто текст, а текст с тэгами HTML. Для этого применяю вот такой подход: public class RubberTextField extends TextField { public function RubberTextField() { super(); super.type = TextFieldType.INPUT; super.border = true; super.borderColor = 0x000000; super.multiline = true; super.wordWrap = true; super.addEventListener(TextEvent.TEXT_INPUT, onInput); super.addEventListener(Event.CHANGE, onInput); } private function onInput(evt:Event):void { if (evt is TextEvent) { evt = (evt as TextEvent); evt.preventDefault(); super.htmlText = super.htmlText + (evt as TextEvent).text; super.setSelection(super.htmlText.length, super.htmlText.length); } super.height = this.textHeight + 8; } } не могу понять, в чем причина и как этого избёгнуть ? =) UPD: трейс выдает вообще что-то ужасное =) каждый символ ставится в кучу тэгов типа <p>, <font> и тп По сути, мне нужно вставить новый текст между этими тэгами, но может как-то это можно сделать автоматически?
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 17.11.2009 в 22:35. |
|
|||||
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Лучше всего использовать text и textFormat. А вообще, с изменением размеров текстового поля в момент ввода куча глюков. Можно попробовать для начала реализовать растягивание без форматирования, а там уж, если получится, и с ним.
|
|
|||||
У меня глюков нет никаких =) Возьмите код и попробуйте. Да и проблема-то не в том
Да, я согласен насчет text + textFormat, однако продолжаю упорствовать над htmlText =)
__________________
...вселенская грусть |
|
|||||
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Да? Значит я что-то делал не так
![]() Автоматически – вряд ли... Скорее всего, придётся написать функцию преобразования позиции символа в обычном тексте в позицию в html-тексте, и с помощью неё вставлять введённый символ в html-текст. А сам html-текст хранить в дополнительной переменной, так как TextField изменяет значение своего свойства htmlText, дописывая туда всякие теги типа TEXTFORMAT. Хотя я не полностью в этом уверен, но вроде бы несколько раз сталкивался. С функцией преобразования проблем особых быть не должно, она должна просто пропускать все теги. Единственно что, могут быть небольшие сложности с <p>, <br> и пробелами между тегами, которые, насколько я помню, в некоторых случаях пропускаются. Это если писать компонент для произвольного html-текста. Если же чётко задать допускаемый формат html-разметки, то многое упрощается. Добавлено через 4 минуты И ещё немного не в тему) Мне кажется, лучше блок if в обработчике из вашего примера переписать так: Последний раз редактировалось SamFR; 17.11.2009 в 23:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:29. |
|
« Предыдущая тема | Следующая тема » |
Теги |
htmltext , textfield |
Опции темы | |
Опции просмотра | |
|
|