Zeilenumbrüche in XML für Flash

So ich habe folgendes Problem: Ich habe eine xml-Datei, die in ein dynamisches Textfeld in Flash eingelesen wird. Das klappt auch alles wunderbar, nur habe ich leider nach jeder Textzeile immer eine Leerzeile, ehe die nächste Textzeile anfängt.
Meine Frage also, wie bekomme ich es hin bzw. wie ist der Befehl in XML damit der Zeilenumbruch anschließend in Flash funktioniert?

Hier mal der vereinfachte XML-Code

<start>
<title>07.07.2005</title>
<subtitle>Update</subtitle>
<text></text>
</start>
Also wie ihr seht ist XML hier nicht groß ausgearbeitet, reicht aber so für mich.
Hoffe ihr könnt mir helfen, btw. <br> funktionierte nicht oO
 
Hi,

Zeilenumbrüche liegen meist als \r\n vor, die von Flash beide als Umbrüche interpretiert werden.

Lösung:
PHP:
function unnoetige_umbrueche_entfernen(meinstring) {
    meinstring = meinstring.toString(); // falls es ein XML-Knoten ist
    var s = chr(10);
    meinstring = meinstring.split(s).join("");
    return meinstring;
}

Gruß
.
 
Hmm ich bin jetzt nicht ganz sicher wie ich das machen muss. Arbeite erst seit ein paar Tagen mit Flash, also Anfänger ^^
Mein dynamisches Textfeld hat die Instantz: feld
die XML heisst: start.xml
Wo muss der Code rein?
In den Frame wo das Textfeld liegt, oder in die Ebene mit dem Frame wo der Code liegt um die XML einzulesen?
Und kann ich den Code einfach so übernehmen, oder muss ich vorher noch die variable bzw. Funktion irgendwo deklarieren?

MFG Train
 
In welche Ebene Du den Code packst, ist wurscht. Flash macht keinen Unterschied zwischen Ebenen.

Frage: Wo schreibst Du den Inhalt der XML-Datei denn in das Textfeld? Was ich gepostet habe, ist eine Funktion, die doppelte Umbrüche entfernt. Die rufst Du einfach an der enstprechenden Stelle auf.

Beispiel:
PHP:
xml_obj.onLoad = function() {
    ...
    textfeld.text = umbrueche_weg(this.childNodes[2].firstChild);
    ...
}
(wäre wohl sinnvoller, einen kürzeren Namen für die Funktion zu verwenden ;) )

Gruß
.
 
Oh achso, die XML-Datei wird extern eingelesen. Bearbeiten tu ich die nur im normalen Windows Editor.
 
Zuletzt bearbeitet:
Also ich blick jetzt gar nicht mehr durch.
Also ich haben 2 Ebenen: in der ersten haben ich den Code um die xml ins textfeld einzulesen
PHP:
stop();
textStil = new TextField.StyleSheet(); 
textStil.load("start.css");
feld.styleSheet = textStil; 
startText = new XML(); 
startText.load("start.xml");
startText.onLoad = function(verbunden) { 
    if (verbunden) { 
        feld.text = startText; 
        delete startText; 
    } else { 
        feld.text = "XML-Datei konnte nicht gefunden werden!"; 
    } 
};
In der 2. Ebene habe ich das dynamische Textfeld; Instanzname: feld
Wo muss jetzt wie, was genau hin? Wenn ich \r\n in der XML hinter die Zeilen schreibe gibt er mir das im textfeld aber als Text aus.
Wäre nett wenn du mir den Code mal genau aufschreiben könntest und wo ich ihn hinpacke. Danke schon mal im voraus

MFG Train
 
Achso, Du zeigst die gesamte xml-Datei im Textfeld an. Sorry, ich dachte, Du sortierst nach Knoten. ;)

Pack die Funktion einfach hier zwischen:
PHP:
feld.text = stripNL(startText);
und lege die Funktion irgendwo darunter an:
PHP:
function stripNL(meinstring) {
    meinstring = meinstring.toString(); // falls es ein XML-Knoten ist
    var s = chr(10);
    meinstring = meinstring.split(s).join("");
    return meinstring;
}

Gruß
.
 
Hmm, geht so leider auch nicht
War es so gemeint?:
PHP:
feld.text = stripNL(startText);
stop(); 
textStil = new TextField.StyleSheet(); 
textStil.load("start.css"); 
feld.styleSheet = textStil; 
startText = new XML(); 
startText.load("start.xml"); 
startText.onLoad = function(verbunden) { 
    if (verbunden) { 
        feld.text = startText; 
        delete startText; 
    } else { 
        feld.text = "XML-Datei konnte nicht gefunden werden!"; 
    } 
};
function stripNL(meinstring) { 
    meinstring = meinstring.toString(); // falls es ein XML-Knoten ist 
    var s = chr(10); 
    meinstring = meinstring.split(s).join(""); 
    return meinstring; 
}
Und muss ich in der XML jetzt noch \r\n ans ende der Zeilen einfügen? Wie gesagt, er zeigt mir das dann aber als text an...

MFG Train
 
Nee, es war so gemeint:
PHP:
if (verbunden) {
    feld.text = stripNL(startText);
    delete startText;
} else {
    feld.text = "XML-Datei konnte nicht gefunden werden!";
}
Du musst die Funktion natürlich dort aufrufen, wo Du den Text ins Textfeld setzt. ;)

Gruß
.
 
Alles klar, jetzt funktioniert es ^^
Vielen vielen Dank! *freu*

MFG Train

EDIT/ hmm der Nachteil ist nur, seh ich gerade, es funktioniert nur alles 100% mit flash player 7 :suspekt:
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück