Вопрос

У меня есть строка

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 &#13; 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;

Вот и все.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top