#apache-flex #actionscript-3 #flex4 #tlf
#apache-flex #actionscript-3 #flex4 #tlf
Вопрос:
Я пытаюсь удалить все разрывы строк из текста, который вставлен в текстовую область Spark.
У меня есть: <s:TextArea id="inputSearchQuery"
width="100%" height="22"
minHeight="22" maxHeight="196"
changing="onInputSearchQueryChanging(event)"/>
И обработчик:
private function onInputSearchQueryChanging(evt:TextOperationEvent = null):void {
if (evt.operation is PasteOperation) {
}
}
Где я могу найти текст, который вставил пользователь? Как я понимаю, этот текст должен быть в evt.operation.TextFlow, но это не так… Я в замешательстве.
Ответ №1:
Вставленный текст находится в (evt.operation as PasteOperation).textScrap
. Таким образом, вы можете извлекать текст из textScrap.textFlow
.
Комментарии:
1. Хммм… Используя пространство имен tlf_internal? Это не взлом? Нет ли более простого способа?
2. Это пространство имен не взломано. Это только для расширенного использования. Вы можете использовать его без каких-либо проблем.
3. Спасибо! Итак, для удаления разрывов строк мне нужно чередовать (evt.operation как PasteOperation).textScrap.TextFlow и не препятствовать evt? Я пытаюсь это:
var tf:TextFlow = (evt.operation as PasteOperation).textScrap.textFlow; var p:ParagraphElement = new ParagraphElement(); var span:SpanElement = new SpanElement(); var t:String = tf.getText(); span.text = t.replace(/n/ig, ""); p.addChild(span); tf.replaceChildren(0, tf.numChildren, p);
Но получаю исключение (