【问题标题】:how to make text line break in flex textarea如何在flex textarea中使文本换行
【发布时间】:2008-11-24 17:33:30
【问题描述】:

我有一个字符串

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

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

【问题讨论】:

    标签: apache-flex actionscript-3 textarea


    【解决方案1】:

    在 flex 上,虽然编码 \nmxml 或任何 xml 上运行良好,只需使用 
 线实体即可定义线。

    我的意思是:

    lazy
fox
    

    给我们

    lazy<br />
    fox
    

    【讨论】:

    • Flex 4.5 似乎更喜欢 超过
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      @radekg

      OP指的是用MXML语法编写的文本字符串:

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

      【讨论】:

        【解决方案4】:

        试试

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

        或者,使用 htmlText 属性并使用

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

        【讨论】:

          【解决方案5】:

          如果您使用的是 htmlText,它应该可以工作,或者至少 (“br”之前没有空格)应该可以工作。

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

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

          也许有更好的方法来解决它,但效果很好。

          编辑:我在“br”之后有一个空格

          【讨论】:

            【解决方案6】:

            我刚刚测试了以下代码:

            <?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?

            【讨论】:

              【解决方案7】:

              在 Flex 中,如果您尝试将行放在上一行旁边。然后将其附加到上一行。

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

              现在 textarea1 是您要在其中打印此字符串的文本区域。

              【讨论】:

                【解决方案8】:

                我只是按照以下方式进行的,

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

                谢谢托尔加汉阿尔拜拉克

                【讨论】:

                  【解决方案9】:

                  你应该这样做:

                  var s:String = "This is a line" + "\n" + "This is another line.";
                  this.txtHolder.text = s;
                  

                  就是这样。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-02-17
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-10-06
                    • 1970-01-01
                    • 2016-06-18
                    相关资源
                    最近更新 更多