eval / this simpel einsetzen

Veränderung

Erfahrenes Mitglied
Eher eine Anfängerfrage, komme aber nach vielem Googeln nicht weiter, weil ich es nahezu identisch übernommen habe.
Ich möchte einen Movieclip variabel ansprechen, sodass ich zunächst den Namen in ein this oder eval setze. Klappt nur leider nicht.

Code:
// Diese Anweisung würde funktionieren, wenn sie auskommentiert wird:
//_root.linienbasar.linie1._visible=true;

// Folgendes funktioniert aber alles einzeln nicht:
this["_root.linienbasar.linie1"]._visible=true;
this["_root.linienbasar.linie1._visible"]=true;
eval("_root.linienbasar.linie1._visible")=true;

Was mache ich falsch?
 
Hi,

eval darf nicht auf der linken Seite einer Zuweisung stehen (und ist im übrigen eigentlich veraltet).

Wie Du schon richtig erkannt hast, wird statt dessen der Array-Zugriffsoperator verwendet. Das "_root" hast Du zudem wohl doppelt, da "this" wahrscheinlich auf _root verweist. Ist dem nicht so, stellst Du statt "this" einfach ein _root vor den Operator.

Du kannst in einem solchen variablen Bezeichner allerdings keine Objektschachtelungen mit "." vornehmen:
Code:
this["linienbasar"].linie1._visible = false; // funktioniert

this.linienbasar["linie1"]._visible = false; // funktioniert

this["linienbasar"]["linie1"]._visible = false; // funktioniert ebenfalls

this["linienbasar"]["linie1"]["_visible"] = false; // auch ;)

var i = 1;
this.linienbasar["linie" + i]._visible = false; // ist wohl die gebräuchlichste Variante

Gruß
.
 
Zurück