verschiedene Texte aus txt-Datei auslesen

senor_max

Mitglied
Hallo zusammen,

ich habe ein Problem, was sicherlich in den Bereich "Anfängerproblem" einzu kategurieren ist, aber vielleicht mag ja einer sein Wissen mit mir teilen.

Ich möchte gerne eine txt-Datei mit 3 verschiedenen Textzeilen durch Flash
einlesen und in einer dyn. Textzeile ausgeben. Dabei soll möglich sein, durch
3 Button Einfluß auf den Text zu nehmen.

//txt-Datei:
text1=Das ist Text1
&text2=Das ist Text2
&text3=Das ist Text3

Beispiel:
Ich drücke Button 1 und im Textfeld "textfeld" erscheint " Das ist Text1",
ich drücke Button 2 und im Textfeld "textfeld" erscheint " Das ist Text2",...

Ich würde mich riesig freuen, wenn mir jemand an Hand dieses Beispieles
die Thematik "Array´s" näher bringen würde.
 
Hi -
also: von der texdatei zum array zum textfeld mit dynamischen Inhalt durch Buttondruck .....

1. Bevor du anfängst, benutz mal die Suchfunktion hier im Forum und am besten in deinem Handbuch zu folgenden Stichworten: LoadVars Objekt, onLoad Handler, Array Objekt und dynamisches Textfeld - nur damit du die Basics mal kennenlernst.

2. Um gleich von Anfang an alles richtig zu machen, und nicht die vergangenen Irrwege alle mitnehmen zu müssen, benutze für das Anlegen deines Textfiles gleich von Anfang an einen Unicode - fähigen Editor (zB. http://www.unipad.org/main/ ).

3. Trage in die so erstellte Datei deinen url encodierten String ein (wie oben von dir richtig skizziert, das '+' Zeichen definiert Leerstellen).

4. Mach einen Flash Film mit folgendem Inhalt : dynamisches Textfeld mit der Benennung 'Ausgabe' (im Eigenschaftsinspektor das Feld links unten) sowie drei Knöpfen mit Namen b1 - b3.

5. Auf das erste Frame deines Films legst du folgendes AS:
PHP:
_root.deineVars = new LoadVars (); // Objektdeklaration
Location = ""; // Verzeichnisort deines Textfiles (http://...)
var deineVarsPfad = Location + "deineVars.txt"; // Pfad
_root.deineVars.sendAndLoad (deineVarsPfad, _root.deineVars, "POST"); // laden der Daten
_root.deineVars.onLoad = function () // was passiert, wenn alle Daten geladen wurden ....
{
	_root.Variablennamen = new Array (); // Array Deklarationen
	_root.Texte = new Array ();
	for (var i in _root.deineVars) // Parsen des LoadVars Objektes
	{
		var VarScope = i;  // Zwischenschritt
		_root.Variablennamen.push (VarScope);  // Füllen des Arrays mit den Variablennamen
	}
	_root.Variablennamen.reverse (); // Umkehren der Reihenfolge des Arrays
	_root.Variablennamen.shift (); // Wegschneiden des onLoad Handlers als Element des Arrays
	for (var i = 0; i < _root.Variablennamen.length; i++) // Schleife für die Inhalte
	{
		var Pfad = eval ("_root.deineVars." + _root.Variablennamen[i]); // Zuordnung
		var Inhalt = Pfad;  // Zwischenschritt
		_root.Texte.push (Inhalt); // Füllen des Inhalte Arrays
	}
};
Auf eine weitere Ebene legst du dann das Button AS:

PHP:
for (var i = 1; i <= 3; i++)
{
	var target = eval ("b" + i);
	target.ID = i - 1;
	target.onPress = function ()
	{
		_root.Ausgabe.text = _root.Texte[this.ID];
	};
}
fertig ......

Wenn du die Nuss geknackt hast, müsstest du dich eigentlich mit Arrays und dem LoadVars Objekt angefreundet haben, bei Fragen frage, aber erst selber denken ...

Grüsse
B

Download
 
Hi, hi,

ja, ja bei höflich formulierten Fragen wird sich hier noch um`s antworten gerissen .... B:p
Grüsse
 
Na ja, Dein Beispiel war eben eleganter- ich lasse dem Besseren den Vortritt ;)

(Obwohl sich natürlich die Frage stellt, in wie weit das nun für einen Anfänger verständlich ist - aber es ist natürlich oft besser, gleich die "richtige" Methode zu lernen)
 
Hmm,

als ich hier gelernt habe, haben Geist und S... noch hier geschrieben, und ich bin heute echt dankbar für die Konfrontation mit deren megakomplexen scripten - obwohl beide ziemlich verspielt waren - da mir das echt monate des irrens erspart hat ...

Aber wir hätten das Urteil ruhig dem Fragenden überlassen sollen, von wegen Rückzieher und so ...:p
 
... erst einmal herzlichen Dank für die prompte Hilfe!:)

Allerdings staune ich jedoch wieviel Script für so eine kleine Funktion nötig ist!?
Benötige ich wirklich "Location" und muß es auch wirklich über eine "Post"-funktion gehädelt werden?
Leider konnte ich Deine Flash-Datei nicht mit Flash MX öffnen - vielleicht magst
du sie noch einmal anders abspeichern, damit ich mir das Ganze näher betrachten kann. Habe zwar versucht ganze über copy&paste zum laufen zu bringen, jedoch hat dies nicht so richtig funktionieren wollen...:(

Noch einmal zum besseren Verständnis:

1 Flash-datei und eine TXT-Datei (gespeichert in Unicode! - wie schon geschrieben) liegen zusammen in einem Ordner.

Die Flash-datei beinhaltet 3 Button, die jeweils1 der 3 versch. Variablen aus der TXT-Datei einlesen und in das Textfenster "Test" (Variablenname - bitte nicht mit Instanzname/Flash5) ausgeben sollen.

Vielleicht magst du mir noch einmal ein Feedback geben...

Gruß und Dank schon mal im voraus
 
- Wie oben im Forum getoppt, immer die Version gleich zur Frage schreiben, um Missverständnisse zu vermeiden, die andere Datei war MX 2004

http://www.monalisaoverdrive.de/Forum/Array_LoadVarsMX.zip

damit müsstest du es eigentlich schaffen, habe zumindest als MX FIle gespeichert ...

- eine Variable als Quelle eines dynamischen Textfeldes ist aus verschiedenen Gründen nicht empfehlenswert, deswegen sehr wohl Instanzname 'Ausgabe' statt variablenname 'test' ...

Das Script ist deswegen 'umfangreich', weil du ja an die Array Problematik herangeführt werden wolltest.
Location ist ein Zusatz, wenn die Datei etwa in einem anderen Verzeichnis läge, nur der Vollständigkeit halber aufgeführt.
LoadVars arbeitet immer als POST Transfer, das ist also zwingend so ....

Grüsse
B
 
Hallo noch einmal...;)

bin jetzt nach längerer Recherche auf die folgende Möglichkeit gekommen - und leider jetzt auch etwas verunsichert, da dieses Script nicht ganz so extrem aussieht!?

Zeitleiste:
3 Frames mit jeweils 1 MC. Alle mit "stop();" versehen.

PHP:
MC:
onClipEvent(load) {
	loadVariables("test.txt",this);
}	
onClipEvent(data) {
	 this._parent.myT=text1; // text2, text3
}

Textfeld:
Var: myT

So sieht es aus und es funktioniert.
Nun würde mich jedoch brennend interessieren, worin liegt jetzt bei den beiden Scripten der Unterschied, bzw. wann nimmt man das eine und wann das andere?

Wie schon geschrieben, würde ich mich sehr über ein Feedback freuen...

Gruß aus HH
 

Neue Beiträge

Zurück