Flash und Flex debuggen mit dem De MonsterDebugger
/ Autor: Jürgen, 17 Jul 2009Der De MonsterDebugger ist ein Open Source Projekt des Design Studios De Monsters.
Der Debugger ist in Flex realisiert und wird AIR Applikation verwendet. Diese stellt alle Objekte einer laufenden Flash, Flex oder AIR Applikation in einer übersichtlichen Baumstruktur dar, vergleichbar mit dem Debugger des Flex Builders / Flash Builders.
Der Vorteil zum Flex Debugger ist allerdingst, dass Properties der Instanzen direkt geändert werden können und diese Änderungen Live in der Applikation sichtbar sind (bekannt aus der Firefox Erweiterung FireBug). Außerdem werden alle Funktionen angezeigt und diese können zur Laufzeit ausgeführt werden.
Der Debugger enthält eine eigene trace Funktion die nicht nur Strings ausgeben kann sondern Objekte als Baumstruktur aufschlüsselt, also eine wesentlich übersichtlichere Darstellung als wenn man sich ein Objekt mit ObjectUtil.toString() ausgeben lässt.
Ein Großer Nachteil ist, dass nur Properties und Funktionen die auf public gesetzt sind angezeigt und werden können. Der Debugger verwendet intern die Funktion describeType(myObject) : XML die eine XML Struktur über das Object zurückgibt. Hier werden allerdings nur alle Properties und Funktionen die public sind ausgegeben.
Der Debugger unterstützt auch keine Breakpoints wie ein klassischer Debugger, dafür bietet er einen guten Einblick in die aktuell dargestellten und geladenen Objekte.
Anwendung
Um den Debugger nutzen zu können muss zuerst die entsprechende AIR Anwendung installiert werden. Daraus kann über File->Export Client Class die Client Klasse exportiert werden, die dann in das Flash / Flex Projekt eingebunden werden muss.
Beispiel Flash
package {
import flash.display.Sprite;
import nl.demonsters.debugger.MonsterDebugger;
public class Main extends Sprite {
// Variable to hold the debugger
private var debugger:MonsterDebugger;
public function Main() {
// Init the debugger
debugger = new MonsterDebugger(this);
// Send a simple trace
MonsterDebugger.trace(this, "Hello World!")
}
}
}
Beispiel Flex
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
<mx:Script>
<![CDATA[
// Import the debugger
import nl.demonsters.debugger.MonsterDebugger;
// Variable to hold the debugger
private var debugger:MonsterDebugger;
private function onInit():void
{
// Init the debugger
debugger = new MonsterDebugger(this);
// Send a simple trace
MonsterDebugger.trace(this, "Hello World!");
}
]]>
</mx:Script>
</mx:Application>
Fazit
Der De MonsterDebugger ersetzt nicht den Debugger des Flex Builders, aber gerade um komplexere Objekte zu tracen ist er gut geeignet. Der größte Vorteil ist, dass sich Anwendungen in ihrer wirklichen Umgebung (also im Netz, oder als AIR Anwendung) einfach und komfortabel Inspizieren lassen.
Weitere Informationen und Download unter http://www.demonsterdebugger.com/


Leave a Reply