Wie finde ich heraus ob eine Variable keinen Wert mehr hat

M

majinz

Hallo

Mit einem ActionScript lese ich aus einer Textdatei eine unbestimmte Anzahl an Variablen an. Diese sind alle nach dem Muster myvarX (also myvar1, myvar2, etc) benannt.
Ich habe in diesem Forum durch die Suchfunktion schon einige Anregungen erhalten. Sprich die Variablen werden korrekt ausgelesen, und angezeigt allerdings nur wenn ich im AS angebe das es zb 3 Variablen sind.

derzeit sieht mein Script so aus:
Code:
 stop();
 textvar = new LoadVars();
 textvar.load("test.html");
 textvar.onLoad = function(ready) {
	 if (ready) {
		i = 0;
		max_entries = 3;
		for(i=1; i<=max_entries;i++)
		{
			_level["myvar" + i] = this["myvar" + i];
		}
 		_root.saveloaded = 1;
 	}
 };
 this.onEnterFrame = function() {
 	if (saveloaded == "1" & !save) {
 		save = true;
		for(i=1; i<=max_entries; i++)
		{
			_root["testfeld" + i].text = _level0["myvar" + i];
		}
 		if (myvar2 == "text2") {
 			_root.mc.gotoAndPlay(1);
 		}
 	}
 };

jetzt soll das anstatt einer for-Schleife mit einer while geschehen. habs so probiert:
Code:
while(this["myvar" + i] != "undefined" or !this["myvar" + i])

da gerate ich aber immer in eine Endlosschleife.

Also Hauptaussage dieser Frage soll sein: Wie stelle ich fest ob eine Variable keinen Wert mehr hat.
 
Hi,

undefined wird nicht in Anführungsstrichen angegeben.

Du kannst die Variablen in einem LoadVars-Objekt allerdings auch mit einer for..in-Schleife durchlaufen:
PHP:
if (ready) {
    var c = 0;
    for(var i in this)
    {
       if(typeof(this[i]) == "string") {
            c ++;
            _level0["myvar" + c] = this[i];
            // hast wohl die 0 nach level vergessen
        }
    }
    _root.saveloaded = 1;
}
Wenn die Variablen im LoadVars-Objekt schon anständig durchnummeriert sind, würde auch folgende Zuweisung genügen:
PHP:
_level0[i] = this[i];
Du brauchst dann keinen Zähler mehr. ;)

Gruß
.
 
Erst mal Vielen Dank für die rasche Hilfe.

Ich hab das jetzt probiert (also die while-Variante, da eventuell noch andere Variablen in der Datei sein werden)

Aber es funktioniert immer noch nicht. Mein Code:
Code:
while(this["myvar" + i] != undefined or !this["myvar" + i])
{
_level0["myvar" + i] = this["myvar" + i];
i++;
}

leider komme ich immer noch in eine Endlosschleife. Ich denke es wäre vermutlich besser, mit dem PHP-Script, welches die Daten bereitstellt, eine Variable mit der Anzahl der Variablen zu erstellen.

Trotzdem vielen Dank für die Hilfe. Die for-in Schleife habe ich noch gar nicht gekannt, und ist vermutlich die Lösung für ein Problem, mit dem ich mich in den nächsten Tagen beschäftigen muss.

Florian
 
Zurück