gloomyBrain
17.11.2009, 22:29
Пытаюсь сделать текстовое поле, которое при вводе текста самостоятельно растягивается по высоте (ширина задана жестко).
Но есть нюанс - хочу вводить не просто текст, а текст с тэгами 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> и тп
По сути, мне нужно вставить новый текст между этими тэгами, но может как-то это можно сделать автоматически?
Но есть нюанс - хочу вводить не просто текст, а текст с тэгами 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> и тп
По сути, мне нужно вставить новый текст между этими тэгами, но может как-то это можно сделать автоматически?