Hallo Strukturart!
Wahrscheinlich gibt es kein Event für die Änderung von Variablen, aber du könntest es so versuchen:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13
var ast:String = "ahorn";
var saferAst:String = ast;
addEventListener(Event.ENTER_FRAME, timer);
function timer(evt:Event) {
if (ast != saferAst) {
trace("ast geändert");
saferAst = ast;
}
}
//Immer wenn du ast änderst wird die trace Anweisung aufgerufen
ast = "buche";
Wenn dir das nicht gefällt könntest du den längeren Weg über eigene Events (also Klassen die von Event erben) probieren.Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"
Das einzige Problem ist das Strings keine Events erhalten können (da Strings nicht vom EventDispatcher erben). Deswegen könntest eigenen Events nur in Klassen wie MovieClip oder Sprite packen.Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"
hm, einen enterframe finde ich etwas übertrieben. du kannst das auch mit einem setter/getter lösen:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11
private var _ast:String = "ahorn";
public function set ast(value:String):void{
if( value == this._ast ) return;
this._ast = value;
this.dispatchEvent( new Event( "astChanged" ) ); // kann natürlich auch anders heissen ;-)
}
public function get ast():String{
return this._ast;
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Ja, wenn man es mit Gettern und Settern macht klappt es wirklick besser. Aber dann braucht man den Event garnicht mehr. Einfach die Anweisungen in den Setter schreiben.Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"