Verfügt ActionScript über ein Äquivalent eines "Core Dump"?

8

Hier ist meine Situation: Ich arbeite an einem AS3-basierten Spiel und möchte ein "Problem melden!" Funktion innerhalb des Spiels, so dass Benutzer Feedback an mich senden können.

Wenn mein Benutzer ein Problem meldet, möchte ich so viele Informationen wie möglich über den Stand des Spiels erhalten. im Grunde welche Objekte im Speicher sind, was die Werte all dieser Variablen in all diesen Objekten sind; im Wesentlichen die gleichen Informationen, die ich bekommen kann, wenn ich einen Breakpoint im Debugger treffe.

Gibt es eine einfache Möglichkeit, dies zu tun? Ich habe Angst, dass ich mehrere Tage damit verbringen werde, eine Reihe von Funktionen zu schreiben, die all diese Informationen für mich bekommen, nur dass mir jemand hinterher sagt: "Oh, warum hast du nicht einfach ASUtils.getSnapshot () aufgerufen" ?

    
Toddarooski 20.08.2011, 22:37
quelle

2 Antworten

7

Es gibt keinen generischen Weg in AS3, den Zustand Ihrer Variablen zu speichern, aber es gibt einige Dinge, die wir nützlich finden:

  1. Erfassen Sie ein Protokoll der letzten Klickaktivität. Verwenden Sie den Bühnenereignis-Listener, um Klicks zu protokollieren und den Objektpfad über die Elternkette zur Bühne zu verfolgen. Der Objektpfad besteht nur aus allen DisplayObject-Namen, z. B. screenMain.dialogBuyItem.buttonBuy
  2. Erfassen Sie einen Screenshot, verkleinern Sie ihn zu einem kleinen Thumbnail, JPEG-Kodierung und laden Sie ihn zusammen mit seinem Feedback auf Ihren Server hoch. Wir machen das auch, wenn es eine Ausnahme gibt (siehe # 4). as3corelib hat JPEG-Kodierungsfunktionen in com/adobe/images
  3. Schreiben Sie ein Kommandozeilenperle oder PHP-Skript, das Sie auf Ihrem AS3-Code ausführen können, bevor Sie es veröffentlichen, das die Anrufverfolgung am Anfang jedes Funktionsaufrufs einfügt. Dadurch kann die Anrufhistorie protokolliert werden. Es ist zwar nicht so gut wie ein vollständiger Stapel, aber es gibt Ihnen einen Hinweis darauf, was Ihr Code in letzter Zeit gemacht hat.
  4. Trap aktiviert und deaktiviert Ausnahmen und protokolliert sie mit Klickaktivität und Anrufprotokollierung auf Ihrem Server. Nicht behandelte Ausnahme-Listener sind neu in Flash 10.1, aber die meisten Benutzer haben diese Funktion. Sie können nach dieser Unterstützung suchen und einen Listener wie folgt hinzufügen:

    %Vor%
  5. Wenn Sie über globale Statusvariablen verfügen, die Sie mit Feedback protokollieren möchten, können Sie eine Funktion schreiben, um sie in eine Zeichenfolge zu laden, um sie mit dem Benutzerfeedback hochzuladen. Während Sie Klassen- und Objekteigenschaften mit for each aufzählen können, funktioniert dies nur für öffentliche Member. Google herum und Sie werden einige Funktionen finden, die Menschen geschrieben haben, um Objekte und Array-Daten rekursiv mit diesem Aufzählungstrick zu speichern.

Toxikman 21.08.2011, 09:07
quelle
1

Ich möchte es als Kommentar hinzufügen, möchte aber keine Codeformatierung verlieren
Das ist, was ich verwende, um komplexe Objekte zu verfolgen:

%Vor%

Ich hoffe, es wäre hilfreich

    
www0z0k 22.08.2011 07:59
quelle

Tags und Links