как сделать разрыв строки текста в flex textarea
-
10-07-2019 - |
Вопрос
У меня есть строка
var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s; //.text has \n, not a new line
и я хочу поместить это в текстовую область, но символ новой строки игнорируется.Как я могу гарантировать, что текст будет прерываться там, где я хочу, когда он будет назначен?
Решение
На flex, хотя кодирование \n
хорошо работает над mxml
или любым xml
для определения строки, просто используйте 
строчную сущность.
Я имею в виду:
lazy
fox
дает нам
lazy<br />
fox
Другие советы
не {\ n}, а {'\ n'}
@radekg
OP ссылается на текстовую строку, написанную в синтаксисе MXML:
<mx:TextArea text="This is a new line" />
Попробуйте
"This is a line {\n} This is another line."
Либо используйте атрибут htmlText и используйте
"This is a line <br> This is another line."
Это должно сработать или, по крайней мере, < br \ > (без пробелов перед " br ") должно работать, если вы используете htmlText.
Я использовал XML для заполнения TextArea, и поскольку я не совсем уверен, как использовать HTML внутри XML (они упоминают, что я должен обернуть его тегами CDATA), но я просто сделал простой
txt.replace("\\n", "<br/>");
Возможно, есть лучший способ сделать это, но это хорошо работает.
РЕДАКТИРОВАТЬ: после " br "
у меня был пробелЯ только что протестировал следующий код:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="onComplete();">
<mx:Script>
<![CDATA[
private function onComplete():void {
var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s;
}
]]>
</mx:Script>
<mx:TextArea id="txtHolder" />
</mx:WindowedApplication>
и с mx: Text
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="onComplete();">
<mx:Script>
<![CDATA[
private function onComplete():void {
var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s;
}
]]>
</mx:Script>
<mx:Text id="txtHolder" />
</mx:WindowedApplication>
Оба работают просто отлично. Может быть, вы используете mx: TextInput или mx: Label?
В Flex, если вы пытаетесь разместить строку рядом с предыдущей строкой. Затем просто добавьте его к предыдущей строке.
var line:String="Hello";
textarea1.text += line;
Теперь к нему добавится textarea1 - это текстовое поле, в котором вы хотите напечатать эту строку.
Я просто сделал это следующим образом,
protected function addToTextArea(array:Array):void
{
textArea.text = "Array Elements are:";
for(var k:int = 0; k < array.length; k=k+1)
{
textArea.text = textArea.text +"\n"+ array[k];
}
}
Спасибо, Толгахан АЛБАЙРАК
Вы должны сделать:
var s:String = "This is a line" + "\n" + "This is another line.";
this.txtHolder.text = s;
Вот и все.