Letzte Zeile eines Textes in Variable speichern

Denniz

Erfahrenes Mitglied
Hi Leute,

ich habe einen Text welchen ich in ein Textfeld lade.

Bsp AS:
Code:
var myText:String = "blabla hier steht mein Text.Wie  kriegt man die letzte zeile des Textes in eine variable?"

var tf:TextField=this.createTextField("tf", 0,0,0,130,0);
tf.border=true;
tf.autoSize=true;
tf.multiline=true;
tf.wordWrap=true;

tf.text= myText;

Wie schaffe ich es das die letzte Zeile des Textes in eine Variable gespeichert wird?
 
Hi,

zunächst dachte ich an die TextSnapshot-Klasse, aber die arbeitet nur mit statischem Text und bietet zudem keine entsprechenden Methoden.

Spontan fällt mir nur die Möglichkeit ein, den Text zeichenweise (oder wortweise) zu verkürzen, und jedes Mal die Eigenschaft .textHeight zu überprüfen. Ab dem Zeichen, ab dem sich diese Eigenschaft verändert (da das Textfeld eine Zeile kleiner wird), sollte Dein gesuchter String beginnen.

Diese Methode wäre aber recht experimentell und nicht besonders elegant. ;)

Gruß
.
 
Hi,

ich habe es jetzt anderes gelöst, da ich auch kein eleganteren weg gefunden habe.
Ich habe einen künstlichen Zeilenumbruch "\n" in meinem String eingefügt, welcher ab da an die letzte zeile markieren soll, und den String dann über split aufgeteilt.

Code:
var myText:String = "blabla hier steht mein Text.Wie  kriegt man die letzte zeile des Textes \nin eine variable?";

var tf:TextField = this.createTextField("tf", 0, 0, 0, 130, 0);
tf.border = true;
tf.autoSize = true;
tf.multiline = true;
tf.wordWrap = true;
tf.text = myText;

var a:Array = myText.split("\n");
a.shift();
trace(a); //-->in eine variable?
 
Zurück