如何在Flex文本区域中实现换行

25

我有一个字符串

var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s; //.text has \n, not a new line

我想把它放到文本区域中,但换行符被忽略了。当它被分配时,我该如何确保文本在我想要的位置中断?

9个回答

44

在 Flex 中编写代码时,在 mxml 或任何其他 xml 中,\n 可以很好地工作,用于定义一行只需使用 
 行实体。

我的意思是:

lazy
fox

给我们

lazy<br />
fox

5
Flex 4.5似乎更喜欢使用 而不是 。 - MonoThreaded

9

不是 {\n} 而是 {'\n'}


5

@radekg

这篇文章提到的是用MXML语法编写的文本字符串:

<mx:TextArea text="This is a &#13; new line" />

3

请尝试

"This is a line {\n} This is another line."

或者使用htmlText属性,并使用


"This is a line <br> This is another line." 

0

我刚刚按照以下方式做了这个,

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];
                 }
            }

感谢Tolgahan ALBAYRAK


0

在 Flex 中,如果您想将一行放在前一行旁边,则只需将其附加到前一行即可。

var line:String="Hello";
textarea1.text += line;

现在,你想要将这个字符串打印到其中的文本区域textarea1中,它将被追加到该文本区域中。


0
你应该做的是:
var s:String = "This is a line" + "\n" + "This is another line.";
this.txtHolder.text = s;

就是这样。


0

它应该可以工作,或者至少<br\>(在“br”之前没有空格)如果您正在使用htmlText,则应该可以工作。

我正在使用XML填充TextArea,因为我不完全确定如何在XML中使用HTML(他们提到我应该用CDATA标记将其包装起来),但我只是简单地做了一个

txt.replace("\\n", "<br/>");

也许有更好的方法,但这个方法很好用。
编辑:我在“br”后面加了一个空格。

0
我刚刚测试了以下代码:
<?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?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接