Laden einer externen Textdatei

Öffnen bzw. anlegen der Flash Datei

Als erstes öffnen wir entweder die im gesammelten Paket mitgellieferte "import_txt.fla" oder erstellen ein leeres Flash Dokument. Anhand der "import_txt.fla" müssen die einzelnen Schritte nur noch mitgelesen werden. Das Beispiel ist an und für sich schon fertig.

Was wir benötigen sind 2 Ebenen. Die obere Ebene benennen wir "action", hier werden wir unseren Actionscript Code einfügen. Eine eigens angelegte Ebene für den Actionscript Code ist von Vorteil, weil man somit bei umfangreichen Projekten den AS Code immer zentral in der Zeitleiste finden kann. Einzige Ausnahme bilden z.B. Buttons, bei denen der Actionscript Code nicht in der Zeitleiste auftaucht, sondern direkt im Codebereich des Buttons geschrieben wird.

Wir erstellen eine zweite Ebene und benennen sie "txt". In dieser Eben erstellen wir 2 Textfelder. Die Textfelder ordnen wir übereinander an. Beim oberen Textfeld stellen wir unter Eigenschaften > Texttyp "Statischer Text" ein und schreiben etwas in das Textfeld. Beim zweiten Textfeld stellen wir unter Eigenschaften > Texttyp auf "Dynamischer Text" ein und benennen die Instanz "dyn_txt". Das benennen dient dazu, dass man dem Textfeld im folgenden im Actionscript etwas zuweisen kann. Weiters stellen wir den Zeilentyp auf "Mehrzeilig".

screenshot

Einfügen des Actionscript Codes

Wir klicken auf den ersten Keyframe in der Ebene "action". (mit F9, kann man das Code-Fenster öffnen, wenn es noch nicht sichtbar ist.)

Dort fügen wir folgenden Code ein:
(Kommentare sind hier in Grau geschrieben)

// Text als Variable laden und dynamischem Textfeld zuweisen

// Variable dyntext wird als LoadVars deklariert.

dyntext = new LoadVars();
// Der Inhalt aus der text.txt Datei wird in die Variable geladen
dyntext.load("text.txt");
// Funktion, die beim ausführen von dyntext.load aufgerufen wird
dyntext.onLoad = function(success) {
    // Wenn der Ladevorgang erfolgreich war -> weiter
    if (success) {
       // dyn Textfeld wird der Inhalt von dyn aus text.txt zugewiesen
       dyn_txt.text = dyntext.dyn;
    }
}

Wir deklarieren eine Variable die den Inhalt der Textdatei aufnehmen soll. dyntext = new LoadVars();
Der Variablen dyntext wird der Typ LoadVars zugewiesen, was bedeutet, dass diese eine externe Datei aufnehmen wird.
dyntext.load("text.txt");
Mit diesem Befehl laden wir den Text aus der Datei text.txt in die Variable (siehe Inhalt der Textdatei weiter unten).
Die Textdatei muss dabei in demselben Ordner wie die fla- bzw. swf-Datei liegen. Anderfalls muss vor dem Dateinamen noch der korrekte Pfad angegeben werden.
Die folgende Funktion dyntext.onLoad wird während des Ladevorgangs ausgeführt. Die Variable success gibt an, ob der Ladevorgang erfolgreich war.
Dies fragen wir ab und laden anschließen mit dyn_txt.text = dyntext.dyn den Teil der Textdatei, der nach "dyn=" steht, in das Textfeld "dyn_txt".
Die Punktnotation wird in Flash verwendet um untergeordnete Eigenschaften oder auch Objekte anzusprechen. Im Beispiel von dyn_txt.text wollen wir etwas an der Eigenschaft "Text" der Instanz "dyn_txt" (diese ist ja ein Textfeld) ändern. Hinter dieser Eigenschaft versteckt sich der Inhalt des Textfeldes. Details dazu lassen sich immer in der Referenz in der Hilfe (F1) nachlesen. Dort findet man das ActionScript 2.0 - Referenzhandbuch.

Inhalt der Textdatei

In der Textdatei steht nachfolgender Text: dyn=Ich bin ein dynamischer Text mit Sonderzeichen äöü

Wichtig: Damit auch Sonderzeichen richtig angezeigt werden, wird die Textdatei als Unicode abgespeichert. Unter dem Editor von Windows findet man das unter Datei > Speichern unter > Codierung. Wird die Datei nicht als Unicode gespeichert kann es dazu kommen, dass der Inhalt von Flash falsch interpretiert wird.

Testen des Beispiels

Als letzten Schritt müssen wir nur noch testen, ob das laden des Texts tatsächlich geklappt hat. Dazu einfach Steuerung > Film test (Strg + Enter) auswählen. Nun sollte der Text der Textdatei im dynamschen Textfeld angezeigt werden.