我在一些項目中看到,ppl有自己的「調試類」。製作調試類
因此,不要鍵入:trace(「看看這個!」),而是鍵入Debug.trace(「看看這個!」)。
我看到的唯一優點是,您可以禁用調試類中的單個參數的每個跟蹤調用..但是,這就是全部。
我的問題是,如果我在AS3中使用Debug類,我可以獲得什麼優勢?
我在一些項目中看到,ppl有自己的「調試類」。製作調試類
因此,不要鍵入:trace(「看看這個!」),而是鍵入Debug.trace(「看看這個!」)。
我看到的唯一優點是,您可以禁用調試類中的單個參數的每個跟蹤調用..但是,這就是全部。
我的問題是,如果我在AS3中使用Debug類,我可以獲得什麼優勢?
我其實不用我的調試類那種方式。我有一個日誌記錄框架,這就是日誌的目的。我的Debug類有類似的事情
// I usually use these for debugging and it avoids the need of an
// additional import.
function whatIs(obj:*):String{ return getQualifiedClassName(obj)}
function describe(obj:*):XML{ return describeType(obj); }
我也有一個getLines方法 - 這樣我就可以輕鬆地查看記錄的痕跡,看到的特定點返回長字符串。
但最重要的一條:
function getStack():String {
try
{
throw new Error("Someone set us up the bomb!");
}
catch(e:Error)
{
return e.getStackTrace();
}
}
我甚至有大約getStack的包裝,它返回其呼籲getStack()方法之前最近調用的類和方法。
調試類可以讓你做不同的級別(注意,警告,錯誤,關鍵,啓示錄等)。正如你所提到的,你可以在一個地方禁用。你可以給郵件添加時間戳。您可以將輸出發送到不同的地方,這對於調試實時應用程序或調試偶發事件非常方便。你也可以有一些邏輯來檢測參數類型,並用調試信息做不同的事情。
+1「您可以將輸出發送到不同的地方。」 @Artemix,你怎麼知道Debug.trace唯一做的就是調用trace()?也許它使用localConnection或externalInterface,並將輸出編組到一個自定義AIR應用程序或將數據發送到服務器。事實上,開發者將trace()調用混合到一起可能只是爲了方便ctrl + Enter樣式本地測試,但真正的黃金可能會在Flash輸出控制檯之外進行記錄。 – scriptocalypse
在這種情況下,它僅用於此目的,但我認爲有一種稱爲「軌道」或類似的方法。 – Artemix
在釋放播放器中具有跟蹤/調試語句也非常棒。由於它們都通過Debug類,因此可以將它們存儲起來,然後將它們顯示在「輸出」TextField中。所以如果你的發佈版本出現問題,你仍然有調試信息 – divillysausages
哦,而且這一次,在AS2中,我在AS2中構建了一個命令行 - 我有一個調試器,無需使用調試類。 – cwallenpoole