Actionscript 3 在实际GUI中显示ActionScript控制台输出

Actionscript 3 在实际GUI中显示ActionScript控制台输出,actionscript-3,console,Actionscript 3,Console,我的问题很简单,但我在网上找不到任何答案,也许这是不可能的 问题是我有一个ActionScript3.0应用程序,并希望包含一个小的一行大小的文本框,它显示了控制台中显示的所有trace()调用等 有人知道怎么做吗?我真的很感激,因为我有一个完整的项目,上面有我想展示的痕迹,现在当我完成的时候,我才意识到我不知道怎么做:P 当然,并不是所有的东西都丢失了,因为我可以只使用自己的类在那里显示消息,但如果不必替换新类和新方法的所有trace()调用,则会更干净、更快 提前问候和感谢:)我上周刚做了这

我的问题很简单,但我在网上找不到任何答案,也许这是不可能的

问题是我有一个ActionScript3.0应用程序,并希望包含一个小的一行大小的文本框,它显示了控制台中显示的所有trace()调用等

有人知道怎么做吗?我真的很感激,因为我有一个完整的项目,上面有我想展示的痕迹,现在当我完成的时候,我才意识到我不知道怎么做:P

当然,并不是所有的东西都丢失了,因为我可以只使用自己的类在那里显示消息,但如果不必替换新类和新方法的所有trace()调用,则会更干净、更快


提前问候和感谢:)

我上周刚做了这件事

Flex有很多日志框架。遗憾的是,Flex的日志只在调试模式下工作。如果你搜索Flex日志,你会发现各种各样的建议。在我看来,它们都不令人惊奇

最后,我创建了一个日志类,其中包含一个静态函数,充当
跟踪的代理

比如:

public static myTrace(... args) : void { ... }
然后,您只需将参数转发到
跟踪
,也可以转发到您想要的任何其他目的地(例如字符串数组+日期),然后可以在日志窗口中显示

顺便提一下,每当向URL添加某个参数时,我还使用
SwfAddress
触发日志窗口。非常方便

哦,真见鬼。。这是课程。它只保留最后100个字符串,还有一个“dump”函数,如果您想将数据发送到服务器或只是快速打印整个历史记录,可以调用该函数

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);
    }
}
公共类日志
{
公共静态变量行:ArrayList=newarraylist();
公共静态常数最大线:int=100;
私有静态函数logLine(行:字符串):void
{
while(lines.length>最大线)
行。removeItemAt(0);
addItem({“line”:line,“time”:new Date()});
}
公共静态函数logDump():字符串
{
var-ret:String=“”;
对于每个(变量条目:lines.source中的对象)
{
ret=(entry.time作为日期).toutString()+“”+entry.line+“\n”+ret;
}
返回ret;
}
公共静态函数调试(…参数):无效
{
微量元素(args);
变量行:String=“”;
for(变量i:int=0;i
或者,您可以使用ASDebugger

尽量避免使用“调试显示对象”选项。对于复杂对象,调试器可能会崩溃(特别是在flex中)


您可能可以简单地替换“trace(”to“ASDebugger.debug(”

HI!感谢您的快速扩展回答:)您确认我的想法..我需要使用自己的代理方法。如果可以的话,我将以您的为例:p再次感谢!
ASDebugger.debug( 'shallala' );
ASDebugger.debug_prop( variable );