2008-11-24 9 views
24

J'ai une chaînecomment faire saut de ligne de texte dans textarea flex

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

et je veux le mettre dans une zone de texte, mais le caractère de nouvelle ligne est ignorée. Comment puis-je m'assurer que le texte se brise là où je le veux quand il est assigné?

+0

Qu'est-ce que txtHolder? –

Répondre

43

Le flex, alors que le codage \n fonctionne bien sur mxml ou tout xml pour définir une ligne juste utiliser 
 entité ligne.

Je veux dire:

lazy
fox 

nous donne

lazy<br /> 
fox 
+5

Flex 4.5 semble préférer sur – MonoThreaded

3

Essayez

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

Vous pouvez également utiliser l'attribut htmlText et utiliser

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

Il devrait fonctionner ou à tout le moins < br \> (sans les espaces avant le "br") devrait fonctionner si vous utilisez htmlText.

j'utilisais XML pour remplir le TextArea et que je ne suis pas tout à fait sûr comment utiliser HTML à l'intérieur de XML (ils mentionnent que je l'envelopper avec des balises CDATA) mais je viens de faire simple

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

Peut-être qu'il y a une meilleure façon de s'y prendre, mais cela fonctionne bien.

EDIT: J'avais un espace après le « br »

0

Je viens de tester le code suivant:

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

et mx: Texte

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

Les deux fonctionnent très bien. Peut-être que vous utilisez mx: TextInput ou mx: Label?

9

pas {\ n}, mais { '\ n'}

+0

Vous gagnez la meilleure réponse de moi. lol. ty. – Speakeasys

5

@radekg

L'OP fait référence à la chaîne de texte écrit dans la syntaxe MXML:

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

Dans Flex si vous essayez de placer la ligne à côté de la ligne précédente. Ensuite, il suffit de l'ajouter à la ligne précédente.

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

Maintenant textarea1 qui est votre zone de texte dans laquelle vous souhaitez imprimer cette chaîne va s'y ajouter.

0

Je viens de faire cela comme suite,

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

Merci Tolgahan ALBAYRAK

0

Vous devriez faire:

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

Voilà.

Questions connexes