Text dynamich einlesen und in MCs ausgeben

  • Themenstarter Themenstarter majinz
  • Beginndatum Beginndatum
M

majinz

Hallo,

Ich lese dynamisch eine Textdatei ein. In dieser sind lauter Dateinamen von weiteren Dateien ein. Jetzt sollen die Inhalte dieser Dateien ausgeben werden. Die unterste Zeile ist ein "Link" zu einem anderen MovieClip.
In der ersten Zeile, steht das Datum, in der zweiten die Überschrift dann ein ein- oder zweizeiliger Einleitungstext und in der nächsten Zeile "weiterlesen". Klickt man darauf soll ein MovieClip starten und eine Animation abspielen. Es geht also um eine Newsübersicht.

Also ich hab mir das vorgestellt. Ich erstell einen MovieClip (manuell in der Bibliothek) mit drei dynamischen Textfeldern und einer Schaltfläche?
Für jede News erstell ich eine Instanz von dem MovieClip und lad die Texte dynamisch rein. Dann muss ich noch die Schaltfläche positionieren, und vorher natürlich herausfinden ob der Einleitungstext ein- oder zweizeilig ist.

Ich hab Probleme damit in AS dynamisch eine Instanz von dem MovieClip zu erstellen und wie man herausfinden könnte ob der Text ein- oder zweizeilig ist. Vielleicht könnte mir da wer helfen?

Edit: Bin gerade auf noch ein Problem gestoßen. Wie kann ich feststellen, ob der Text schon geladen ist. Derzeit hab ich im MovieClip folgenden Code:
PHP:
onClipEvent(load)
{
	trace("text wird geladen");
}
onClipEvent(data)
{
	trace("test: " + _level0.meineVariable);
}
Und mit folgendem Code wird der Text geladen (ist im Schlüsselbilid der Code-Ebene):
PHP:
_level0.loadVariables("admin/getpress.txt", "inhalt");

Edit 2: Ok, letzteres Problem konnte ich doch noch lösen. Fand was passendes auf der zweiten Seite der Suchfunktion ^^
PHP:
textladen = new LoadVars(); 
textladen.onLoad = function() { 
	// ausgeben
} 
textladen.load("admin/getpress.txt");

Edit 3: Hallo, hab jetzt den Befehl attachMovie gefunden (mein Medieninformatik Prof. kam im ICQ online, Glück gehabt). Hab mich dann in der Flashhilfe schlau gemacht, und auch etwas gefunden:
PHP:
newclip = this.attachMovie("pressnews_einzel", "pressnews_einzel" + i, 2);
Das einzige was ich dabei nicht durchgeblickt hab ist der dritte Parameter "tiefe". Ich hab da jetzt mal 1 und 2 ausprobiert, hab aus der Flashhilfe aber den Sinn nicht ganz verstanden. Muss ich da die Tiefe angeben, in der sich mein MovieClip befindet (bzw. befinden soll). Hab auch 4 (ohne Szene 1) und mit 5 (mit Szene 1) probiert. Kein Ergebnis.
Außerdem soll die Funktion ja einen Verweis auf den MovieClip zurückgeben. Wollt den mit _y positionieren, hat aber nicht funktioniert. (wenn ich newmc._y ausgebe (trace();) schreibt er mir undefined)

Schon jetzt mal vielen Dank für die Hilfe.

Edit 4: Ich weiß nicht genau was ich geändert habe, aber jetzt funktioniert es. Keine Ahnung warum, aber das ist jetzt egal.
Ich hab jetzt noch ein kleineres Problem: Der Text aus der Datei wird geladen. Der MovieClip wird erstellt und positioniert. Ich will den Text in die dynamischen Textfelder (die im erstellten MovieClip sind) einfügen. Wenn ich über Debuggen > Variablen schau, sind alle Variablen eingetragen. (also bei .text und .htmlText steht der gewünschte Inhalt dort) Nur angezeigt wird rein gar nix.

Florian
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Die Tiefe ist im Prinzip etwas ähnliches wie die Stapelreihenfolge der Objekte. Clips auf einer höheren Tiefenebene werden im Vordergrund angezeigt, wobei jedes Objekt nur eine Tiefenebene belegen kann. Wenn attachMovie bei Dir nicht funktioniert, hast Du wahrscheinlich die Exportfreigabe vergessen.

EDIT: Mann, ich komm ja kaum nach, so schnell wie Du Dir Deine Fragen selbst beantwortest (^^) - Wenn in Deinem Textfeld nichts angezeigt wird: Hast Du vielleicht vergessen, die Zeichen einzubetten (auch für Fettdruck brauchst Du jedes Zeichen erneut), und das Textfeld unter einer Maske oder so?

Gruß
.
 
Hallo,

Einbetten! Das hab ich vergessen. Jetzt wird es mir klar. Und ich hab zigtausend Varianten probiert wie es gehen könnte. Die einfachsten Sachen, die man schon 100 mal gemacht hat, vergisst man beim 101. Danke für deine Hilfe.
Werd das morgen in der Firma gleich ausprobieren.

Florian
 
Zurück