Beim Tracen eines Objects in Flash erscheint lediglich die Ausgabe [object Object], was recht bescheiden ist. Man kann die Ausgabe verbessern, in dem man die toString() Methode der Object Klasse in Flash überschreibt. Erzeugen wir mal ein Object in Flash und fügen ein paar Eigenschaften hinzu:
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";
trace(adresse);
Die trace-Anweisung erzeugt, wie gesagt, diese Ausgabe: [object Object]
Jetzt überschreiben wir die toString Methode, die die Object Klasse benutzt um die Trace-Ausgabe zu erzeugen:
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";
adresse.toString = function(){
for(var prop in this){
trace(prop + ":" + this[prop]);
}
}
trace(adresse);
Der trace-Befehl erzeugt nun folgende Ausgabe:
toString:[type Function]
ort:Musterstadt
plz:12345
hausnummer:12
strasse:Musterstr.
name:Mustermann
vorname:Hans
[type Object]
Aber wir können die Ausgabe sogar noch sinnvoll formatieren:
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";
adresse.toString = function(){
trace(this.name +", " + this.vorname);
trace(this.strasse +" "+ this.hausnummer);
trace(this.plz +" "+ this.ort);
}
trace(adresse);
Jetzt wird unser Object so ausgegeben:
Mustermann, Hans
Musterstr. 12
12345 Musterstadt
[type Object]
Wir haben damit lediglich die toString() Function des Objects adresse geändert. Wenn wir ein anderes Object erzeugen, erhält dieses Object wieder die ursprüngliche toString()-Funktion der Object Klasse.
Technorati: ActionScript, Object, Flash, toString(), trace()





