我剛剛在上週做了這個。
有Flex的日誌框架。但令人遺憾的是,Flex的日誌記錄只能在調試模式下工作。如果您搜索SO進行Flex記錄,您會發現各種建議。他們都不是很棒,海事組織。
最後,我通過創建一個帶有靜態函數的Log類來實現自己的功能,該函數充當trace
的代理。
喜歡的東西:
public static myTrace(... args) : void { ... }
然後你只需向前參數傳遞給trace
也給你想要的任何其他目的(如字符串+日期數組),然後可以在日誌窗口中顯示。
順便提一下,我還使用SwfAddress
來觸發日誌窗口,只要某個參數添加到URL中。非常便利。
哦,到底是什麼......這是班級。它只保留最後100個字符串,並且還有一個「轉儲」功能,如果要將數據發送到服務器或只是快速打印整個歷史記錄,則可以調用該功能。
public class Log
{
public static var lines : ArrayList = new ArrayList();
public static const MAX_LINES : int = 100;
private static function logLine(line : String) : void
{
while (lines.length > MAX_LINES)
lines.removeItemAt(0);
lines.addItem({"line" : line, "time" : new Date()});
}
public static function logDump() : String
{
var ret : String = "";
for each (var entry : Object in lines.source)
{
ret = (entry.time as Date).toUTCString() + " " + entry.line + "\n" + ret;
}
return ret;
}
public static function debug(...args) : void
{
trace(args);
var line : String = "";
for (var i : int = 0; i < args.length; i++)
if (args[i] != null)
line += args[i].toString();
logLine(line);
}
}
HI!感謝您的快速和擴展答案:) 您確認我在想什麼..我需要使用我自己的代理方法。如果可以,我將以您爲例:P 再次感謝! – pepillo 2011-06-11 12:50:36