我刚刚在上周做了这个。
有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