Domanda

Ho una stringa

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

e voglio inserirlo in un'area di testo, ma il nuovo carattere di linea viene ignorato. Come posso assicurarmi che il testo si interrompa nel punto desiderato quando assegnato?

È stato utile?

Soluzione

Su flex, mentre la codifica \n funziona bene su mxml o su qualsiasi xml per definire una linea basta usare 
 entità linea.

Voglio dire:

lazy
fox

ci dà

lazy<br />
fox

Altri suggerimenti

non {\ n} ma {'\ n'}

@radekg

L'OP si riferisce alla stringa di testo scritta nella sintassi MXML:

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

Prova

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

In alternativa, utilizzare l'attributo htmlText e utilizzare

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

Dovrebbe funzionare o almeno < br \ > (senza gli spazi prima del " br ") dovrebbe funzionare se stai usando htmlText.

Stavo usando XML per compilare TextArea e dato che non sono del tutto sicuro di come usare HTML all'interno di XML (menzionano che dovrei avvolgerlo con i tag CDATA) ma ho fatto semplicemente un

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

Forse c'è un modo migliore per farlo ma questo funziona bene.

EDIT: avevo uno spazio dopo " br "

Ho appena testato il seguente codice:

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

e con mx: testo

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

Entrambi funzionano bene. Forse stai usando mx: TextInput o mx: Label?

In Flex se stai cercando di posizionare la linea accanto alla linea precedente. Quindi aggiungilo alla riga precedente.

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

Ora textarea1, che è l'area di testo in cui si desidera stampare questa stringa, verrà aggiunta ad essa.

L'ho appena fatto come segue,

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

Grazie Tolgahan ALBAYRAK

Dovresti fare:

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

Questo è tutto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top