[OBJECT] Alle Variablen anzeigen

luke_the_duke

Erfahrenes Mitglied
Wer kennt folgende Situation nicht:
Auch nach dem hunderttausensten Export ist der Bock noch nicht ausgemerzt, jede Variable hat man schon an die hundertmal ausgeben lassen. Und letzten Endes hat man dreissig Zahlenwerte von drei verschiedenen Variablen an einem Stück und spät ist es auch schon und kreative Ausgaben mag man auch nicht mehr schreiben und so weiter und so fort.

Folgender kleiner Prototype erfindet das Rad nicht neu, hat mir aber beim Debuggen schon manche Nacht gerettet. Auf jedes Objekt in AS kann man den Befehl "traceMembers()" aufrufen und bekommt eine nette Auflistung aller bleibenden Variablen dieses Objekts ausgegeben. Folgende Ausgabe bekam ich für die nackte Hauptzeitliste:

Code:
//Der Befehl
this.traceMembers();

//Die Ausgabe
=============================================================
NAME: traceMembers | VALUE: [type Function] | TYPE: function
NAME: $version | VALUE: MAC 8,0,22,0 | TYPE: string
=============================================================

Alle diese Informationen sind im Prinzip auch über den Befehl CTRL+ALT+v erhältlich, allerdings werden da immer sämtliche Member sämtlicher Objekte des ganzen Films ausgegeben, was bei grösseren Projekten jeweils in einer Datenflut endet.
Auch der Flash-interne Debugger zeigt einem alle Member an, mir war das Teil jedoch immer ein wenig suspekt ;).

Wie auch immer, vielleicht dient Euch diese kleine Funktion als Inspiration für Eure eigene All-In-One Ausgabe, mir hat sie sehr geholfen.

Anwendung:
Einfach diese Zeilen in das erste Schlüsselbild des Haupttfilms legen und schon ist traceMembers für alle Objekte des Hauptfilms verfügbar.

ACHTUNG: Folgender Code funktioniert erst ab Flash MX 2004 bzw. AS 2.0 bzw. Player v7

Code:
Object.prototype.traceMembers = function (): Void {
	
	var str: String = "============================================================="; 
	
	for (var i: String in this) {
		str = str.concat("\nNAME: ", i," | VALUE: ", this[i], " | TYPE: "+typeof(this[i]));
	}
	
	trace (str);
	trace ("=============================================================");
}

gruss
 
Zurück