2008-11-24 8 views
24

Mam ciągjak zrobić przerwę w linii tekstu elastycznego textarea

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

i chcę, aby umieścić go w polu tekstowym, ale nowy znak linii jest ignorowany. Jak mogę zagwarantować, że tekst zostanie przerwany tam, gdzie chcę, kiedy zostanie przypisany?

+0

Co to jest txtHolder? –

Odpowiedz

43

Na flex, podczas kodowania \n działa dobrze na mxml lub którykolwiek xml zdefiniować linię wystarczy użyć 
 podmiot wiersza.

Znaczy:

lazy
fox 

daje nam

lazy<br /> 
fox 
+5

Flex 4.5 wydaje się preferować przez – MonoThreaded

3

Spróbuj

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

Ewentualnie użyć atrybutu htmlText i używać

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

Powinien działać lub co najmniej < br \> (bez spacji przed "br") powinno działać, jeśli używasz htmlText.

używałem XML wypełnić TextArea a ponieważ nie jestem do końca pewien, jak używać HTML wewnątrz XML (wspomnieć, że należy owinąć go z tagami CDATA), ale ja po prostu nie prosty

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

Być może jest lepszy sposób, aby to osiągnąć, ale to działa ładnie.

EDIT: Miałem miejsca po „Br”

0

Właśnie przetestowany następujący kod:

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

iz mx: Tekst

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

Oba działają bez zarzutu. Może używasz mx: TextInput lub mx: Label?

9

nie {\ n} ale

PO odnosi się do łańcucha tekstu napisanego w składni MXML { '\ n'}

+0

Wygrywasz najlepszą odpowiedź ode mnie. lol. ty. – Speakeasys

5

@radekg:

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

Flex jeśli próbują umieścić linię obok poprzedniej linii. Następnie dodaj ją do poprzedniego wiersza.

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

Teraz textarea1, który jest twoim tekstem, w którym chcesz wydrukować ten ciąg, dołączy się do niego.

0

po prostu zrobił to następująco,

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

Dziękuję Tolgahan ALBAYRAK

0

należy zrobić:

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

to wszystko.