Sonntag, 22. Mai 2011

Actionscript 3: DebugConsole

Dies ist diesmal eine etwas einfachere aber trotzdem wichtige Komponente. Jeder, der in Actionscript komplexere Animation, also Animationen, die mehr sind als ein fliegendes Quadrat, erstellt wird nicht selten mit Fehlern zu kämpfen haben. Gegen syntaktische Fehler muss jeder selbst vorgehen aber dafür haben wir ja einen Compiler(oder ist es sogar ein JIT?). Logik Fehler sind schwerer auszubügeln. Desshalb wird wohl jeder schonmal die "trace" Funktion missbraucht haben. Das grundsätzliche Problem damit ist, die Output Konsole wird ziemlich schnell ziemlich voll und wichtige Werte gehen in der Menge einfach unter. Desshalb machen wir uns mal eine OnScreen Debug Konsole. Dazu brauchen wir auch nicht viel:
-eine Klasse die von der Klasse TextField erbt
-zwei Input Methoden
-eine Löschen Methode

Wie immer gilt, dies sind nur BareBones, alles ist individuell erweiterbar und steht zu euren freien Verfügung. Ich werde am Schluss von meinem AS3 vorhaben alle Tutorials nochmal sammeln und auf www.studium-informatik.net zusammengefasst veröffentlichen.

Nun aber ran an den Speck:

1.) Die Klasse

public class DebugConsole extends TextField
{
}

ganz einfach und übersichtlich und es wird nicht komplizierter. Wir erben von TextField, da das eigentlich alles trägt was wir brauchen, nun fügen wir nur noch hinzu :)

2.) Der Konstruktor

public function DebugConsole()
{
}

Dies ist Ausnahmsweise mal ein leerer Standardkonstruktor.

3a.) Schreiben, die Erste

public function write(_text:String):void
{
this.text += " " + _text;
}

Diese Methode fügt dem bisherigen Text der Konsole neuen Text hinten heran. Vor dem neuen Text wird sicherheitshalber ein Leerzeichen eingetragen, damit wir keine Wortschlangen wie "DiesistdocheineabsolutunleserlicheAusgabewiemansienichtrichtigauswertenkann." bekommen.

3b.) Schreiben, die Zweite

public function writeLine(_text:String):void
{
this.text += _text + "\n";
}

Was fehlte uns beim 1.? Genau Zeilenumbrüche, das machen wir jetzt. Es ist quasi das gleiche in Grün, nur jetzt mit einem Zeilenumbruch hinten an dem Text dran. Kein Originaltext wird zerstört, dies gilt für beide Funktionen.

4.) Nun Löschen wir es wieder

public function clear():void
{
this.text = "";
}

Die letzte Methode der Klasse leert den kompletten Output, dies ist vor allem nützlich, wenn man ständig verändernde Werte von Variablen (wie die X und Y Koordinaten eines sich bewegenden Objektes) zu beobachten, ohne das ellenlange Texte entstehen. Es wird aber nicht wirklich der Text gelöscht, sondern nur der bisherige Text mit einem leeren String überschrieben. Hat aber den gleichen Effekt und frisst auch nicht mehr Speicher.


So, nun haben wir eine DebugConsole. Viel Spaß damit. Falls euch dass Tutorial gut gefallen hat, dann empfehlt mich ruhig weiter. Desweiteren gilt wie bei jedem Code, den ihr im Internet findet: Benutzung ist auf eigene Verantwortung

Keine Kommentare:

Kommentar veröffentlichen