Textformation in externen Datein

Twos

Erfahrenes Mitglied
Hi

Ich lese mit folgendem Befehl eine externe .txt-Datei in meinen Flashfilm:

Code:
var loader:LoadVars = new LoadVars();

loader.onLoad = function(test) {
	if(test) {
		unsertextfeld.text = this.text1;
	}else{
		unsertextfeld.text = "Textdatei wurde nicht gefunden";
	}
};

loader.load("uebermich.txt");

Den Text bearbeite ich dann mit TextEdit. Wenn ich mir den Taxt jedoch dann im Film angucke, ist meine gesamte Formation flöten gegangen. Überall gibts neue Absätze usw.

Weiß jemand woran das liegt und wie ich den Fehler beheben kann?:(

Gruß
Twos

PS: Anbei die Textdatei
 

Anhänge

Hi

Irgendwie scheint mein PC rumgeschmiert zu haben und jetzt ist das Thema zweimal vertreten - war nicht meine Absicht:confused:
 
Hi,

für vorformatierten Text solltest Du nicht das LoadVars-Objekt bemühen (welches eher für kurze Variableninhalte gedacht ist), sondern einmal das XML-Objekt ausprobieren. Das hat z.B. den Vorteil (auch wenn Du den gesamten Text in ein Tag packen willst), dass Du html-formatierten Text in lesbarer Form in CDATA-Bereichen verwenden kannst:
Code:
<meinInhalt><![CDATA
... hier kann dann Dein Inhalt stehen<br>
einige html-Tags werden von Flash unterstützt
]]>
</meinInhalt>
Da das LoadVars-Objekt die Variablen-Wert-Paare in url-kodierter Form erwartet, bekommst Du sowieso spätestens dann ein Problem, wenn in Deinem Text das Zeichen "&" auftaucht.

Tabstopps werden von Flash nicht standardmäßig auf das vierfache der durchschnittlichen Zeichenbreite gesetzt.. Um diese individuell umzusetzen, musst Du mit dem TextFormat-Objekt die Abstände festlegen (siehe in der Referenz unter ActionScript-Klassen > TextFormat > tabStops (TextFormat.tabStops-Eigenschaft)

Gruß
.
 
Nachtrag:

Wenn Du Deinen Text wie in meinem ersten Posting in eine XML-Datei setzt, kannst Du folgendes Script verwenden, um ihn in einem Textfeld anzuzeigen:
Code:
System.useCodepage = true; // weglassen, wenn die Datei unicode-kodiert ist

var fmt = new TextFormat();

fmt.tabStops = [80,160,240,320]; // Positionen der Tabstops in Pixeln (hier alle 80 Pixel)

var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
	tf.text = this.firstChild.firstChild;
	tf.setTextFormat(fmt);
}

xm.load("meintext.xml");
Dass Deine Tabstopps durcheinandergewürfelt erscheinen, liegt daran, dass Du in Deiner Textdatei Tabulatoren mit Leerzeichen mischst: Auch in meinem Editor sind die Positionen "durcheinander". ;)

Gruß
.
 
Hi

Vielen Dank für die schnelle Hilfe, werde ich gleich mal ausprobieren! Da ich aber bei allem was irgendwie mit Code zu tun hat eine totale Niete bin, kommt bestimmt noch mal eine Nachfrage:) Sei bereit:-)
 
Hi,

Also ich glaube ich brauche eine Idiotensichere Anleitung:

Ich habe im selben Ordner, indem sich auch meine Flashdatein befinden meinen Text als XML-Datei liegen.

Soll ich nun deinen Colde:
Code:
System.useCodepage = true; // weglassen, wenn die Datei unicode-kodiert ist

var fmt = new TextFormat();

fmt.tabStops = [80,160,240,320]; // Positionen der Tabstops in Pixeln (hier alle 80 Pixel)

var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
	tf.text = this.firstChild.firstChild;
	tf.setTextFormat(fmt);
}

xm.load("meintext.xml");

in ein Schlüsselbid einfügen und auf einer anderen Ebene ein dynamisches Textfeld mit einem bestimmten Namen erstellen, so dass in dieses der Inhalt meiner XML-Datei geladen wird?

Kenne mich leider nicht aus, ist aber wichtig für mich zu wissen:p

Wäre für Hilfe sehr sehr dankbar (vielleicht hilft ja auch ein kleines Beispiel zum runterladen:-)

Gruß
Twos
 
Hi,

im Anhang findest Du ein kleines Beispiel.

Das Problem ist (was mir auch eben erst aufgefallen ist), dass Flash die Tabstopps absolut interpretiert (wie eine Textverarbeitung, z.B. Wort), ein Editor aber relativ. Das heisst, dass Flash z.B. nach dem zweiten Tabulatorzeichen in einer Zeile zum zweiten Tabstop springt, Dein Editor aber zum jeweils nächtgelegenen.

Den Text im Anhang habe ich so modifiziert, dass er in Flash bündig angezeigt wird.

Gruß
.
 

Anhänge

Hi

Super vielen Dank, du hast mir echt aus der Patsche geholfen! Noch eine Frage:
Bei deinem Text sind Umalute mit ^ oder ähnlichem gekennzeichnet.

Konfektionsgrˆ?e: 48
Schuhgrˆ?e: 43
F¸hrerschein: Klasse 3
Fremdsprachen: Englisch, Franzˆsisch

Wenn ich jetzt einen Text von Word in mein anderes Programm importiere, um es in eine XML-Datei umzuwandeln, muss ich dann immer die Umlaute und "ß's" durch diese Zeichen ersetzen? Oder reicht es wenn ich es mit irgendeiner bestimmten Einstellung abspeichere? Ich frage deshalb, weil der Kunde später in der Lage sein soll die Seite selbstständig zu updaten.

Ich hoffe ich nerve nicht mit meiner Kleinkariertheit:-)

Gruß
Twos
 
Hi,

eigentlich ist die angefügte Datei ANSI-kodiert. Du kannst auch eine UNICODE-Kodierung verwenden (dann aber das System.useCodePage = true entfernen.

Gruß
.
 
Zurück