Probleme bei Auswertung der Inhalte von eingelesenen Textdateien

uwekiel

Grünschnabel
Hallo Flash-Gemeinde !
Für die Steuerung meiner Lernprogramme lade ich dynamisch Fragen und Antworten in die Flash-Anwendung. Die eingeladenen Textstellen kann ich in einem dyn. Textfeld anzeigen, aber die Variablen nicht auswerten, um entsprechende Abläufe zu steuern. Die Variablen mit den eingelesenen Steuerstrings können weder mit anderen Variablen verglichen werden noch mit Stringoperationen bearbeitet werden.
Wer kennt auch dieses Problem und kann mir bei der Lösung helfen.
PHP:
TextA = Text0 add ".txt";
local = new Array();
loaded_locs = new LoadVars();
loaded_locs.load(TextA); // Einladen der Textdatei z. B. A-0012.txt
loaded_locs.onLoad = function(success) {
i = 0;
if (success) {
s = eval("loaded_locs.Titel"+i);
while (s != undefined) {
local[i] = s;
i++;
s = eval("loaded_locs.Titel"+i);
}
textf00 = local[0]; // Beispieltext
textf01 = local[1]; // false
textf02 = local[2]; // false
textf03 = local[3]; // Beispieltext }
else {trace("Error while loading variables!");	}
}
Die Inhalte der dyn. Textfelder mit den Variablen  werden korrekt angezeigt aber die anschließenden Anweisungen bringen keine Ergebnisse:

if ((textf02 == true ){gotoAndPlay("Szene 9", 4);}
 else{gotoAndPlay("Szene 9", 10);}
bzw:
if ((textf02 == textf01){gotoAndPlay("Szene 9", 4);}
 else{gotoAndPlay("Szene 9", 10);}
Ich bedanke mich im voraus für eure Hilfe

Uwe Kiel [uwekiel] e-mail …annekiel84@aol.com
 
Zuletzt bearbeitet von einem Moderator:
Hi,

da hast Du wohl das falsche Forum erwischt; dies ist die Tutorial-Inbox. Fragen zu Flash am besten ins Flashforum posten!

Ansonsten:
PHP:
if ((textf02 == true ))
ich nehme an, textf02 ist eine Textfeldinstanz? Dann musst Du auf die Eigenschaft .text zurückgreifen:
PHP:
if (textf02.text == sonstwas)
auch die Zuweisung sollte derart geschehen:
PHP:
textf00.text = local[0]; // Beispieltext

Gruß
 
Hallo Datic;
Danke für deine schnelle Antwort, leider hat dein Tipp nicht funktioniert. Wahrscheinlich konnte ich deinen Hinweis nicht richtig einfügen.
Das nachfolgende Skript soll mein Problem verdeutlichen. Vielleicht mache ich einen entschiedenen Denkfehler,.und gibt es einen ganz anderen Ansatz.
Im Voraus vielen Dank für Deine Hilfe
Beispieldatei zu Veranschaulichung des Problems.
Ich generiere zwei Textfelder und lade die jeweiligen Inhalte au einer Textdatei
Sollten die Inhalte der Textfelder gleich sein, erscheint ein Textfeld mit dem Inhalt " die geladenen Felder sind gleich",
sollten die Inhalte nicht gleich sein, erscheint ein Textfeld mit dem Inhalt " die geladenen Felder sind gleich",

PHP:
laenge =4 // Anzahl der möglichen Textdateien
wert0 = random(laenge);
TextA=wert0 add".txt";

_root.createTextField("TText01", 0, 100, 125, 150, 25); 
TText01.variable =("textf01");
TText01.multiline = true;
TText01.wordWrap = true;
TText01.border = true;
TText01.type = "dynamic";
_root.createTextField("TText02", 1, 250, 125, 150, 25);
TText02.variable = ("textf02");
TText02.multiline = true;
TText02.wordWrap = true;
TText02.border = true;
TText02.type = "dynamic";
_root.createTextField("TText11", 2, 100, 300, 200, 25);
TText11.variable =textf11;
TText11.multiline = true;
TText11.wordWrap = true;
TText11.border = true;
TText11.type = "static";
TText11.text =" die geladenen Felder sind gleich"
TText11._visible =false;
_root.createTextField("TText12", 3, 400, 300, 200, 25);
TText12.variable =("textf12");
TText12.multiline = true;
TText12.wordWrap = true;
TText12.border = true;
TText12.type = "static";
TText12.text =" die geladenen Felder sind  nicht gleich"
TText12._visible =false;
local = new Array();
loaded_locs = new LoadVars();
loaded_locs.load(TextA);
loaded_locs.onLoad = function(success) {
	i = 0;
	if (success) {
		s = eval("loaded_locs.Titel"+i);
		while (s != undefined) {
			local[i] = s;
			i++;
			s = eval("loaded_locs.Titel"+i);
		}
		TText01.text = local[0];
		TText02.text = local[1];
	}
}

if (TText01.text == TText02.text) 
{TText11._visable =true;
}
else
{TText12._visable =true;
}
/* ________________Inhalte der zu ladenden Textdateien__________________
0.txt __ Inhalt
Titel0=Wahr&Titel1=Falsch&Titel3=Ende
 _________________________________________________
1.txt __ Inhalt
Titel0=Wahr&Titel1=Wahr&Titel3=Ende
_______________________________________________
2.txt __ Inhalt
Titel0=Falsch&Titel1=Falsch&Titel3=Ende

Gruß U.Kiel
 
Zuletzt bearbeitet von einem Moderator:
Hi,

bei mir funktioniert es eigentlich - abgesehen davon, dass Du eine Variable nicht als String angegeben hast:
PHP:
TText11.variable =textf11;
// muss heissen:
TText11.variable = "textf11";
und Du die _visible-Eigenschaft falsch geschrieben hast:
PHP:
TText11._visable =true;
// muss heissen:
TText11._visible = true;
Daher kann keiner der "Meldungstexte" angezeigt werden.

Übrigens gibt es die type-Eigenschaft "static" nicht für generierte Textfelder - nimm "dynamic" - schließlich änderst Du ja den Text per AS.

Warum nimmst Du nicht einfach ein Textfeld für die Meldung und schreibst den gewünschten Text hinein?
PHP:
if (TText01.text == TText02.text) 
{
    TText11.text = "Inhalte identisch";
}
else
{
    TText11.text = "Inhalte verschieden";
}
Variablen kannst Du Dir eigentlich sparen, wenn Du direkt auf die .text-Eigenschaft zugreifst.

Gruß
 
Hallo Datic,

Vielen Dank für deine Hilfe, deine Tipps haben mich in die richtige Richtung gebracht und ich konnte mein Problem lösen.


Gruß Uwe Kiel
 
Zurück