Domanda

Quando creo un TextField in AS3 con righe impostato su true e equiparare il testo per dire:

"Hola \ r hola"

Non sono in grado di recuperare la posizione di indice \ r utilizzando la funzione indexOf, restituisce sempre -1

Qualcuno sa che cosa sto facendo male?

var txt:TextField;
txt.multiline = true;

txt.text = "Hola \r hola";

//txt now renders fine with the line break

trace(txt.indexOf("\r")); //Returns -1, should return the valid index of \r in txt
È stato utile?

Soluzione

Dopo la risposta di Mikko ho dato una prova:

var textField:TextField = addChild(new TextField()) as TextField;
textField.multiline = true;

textField.text = "test \r test";

trace("result>" + textField.text.indexOf("\r"));

Questo codice traccia:

result>5

... proprio come previsto.

Se ancora non funziona per voi, in primo luogo provare a cercare per un altro personaggio di \ r, se questo funziona anche provare a cercare per \ n. Forse l'avanzamento riga si trasforma in qualche modo. (Quale sistema operativo stai?)

Altri suggerimenti

guarda a me che si sta cercando di ottenere l'indice della TextField al posto del TextField.text che ti interessa.

trace(txt.text.indexOf("\r"));

potrebbe funzionare un po 'meglio.

Ok, quindi prima le cose,

Non hai istanziati vostro campo di testo, è semplicemente fatto un riferimento.

In secondo luogo, indexOf, non è disponibile per la classe TextField, ma per la classe String, in modo da utilizzare il seguente e non dovreste avere più problemi. Si traccia bene per me.

var txt:TextField = new TextField();
addChild(txt);
txt.multiline = true;
txt.text = "Hola \r hola";

trace(txt.text.toString().indexOf("\r"));

Theo ha essenzialmente corretto, ma ho pensato di provare un renderlo un po 'più chiaro.

La speranza che ho potuto fare. Inoltre vorrei suggerire check-in espressioni regolari, che hanno semplici modi per trovare spazi vuoti o qualsiasi altro modello che si può pensare.

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