这是一个更普遍的问题,而不是“帮助修正代码”问题:
目标
父swf a.swf加载外部子b.swf
子swf有跟踪语句:[timestamp] [log level] [class] msg
父SWF是否可以“捕获”这些跟踪语句并将它们用作字符串?
目的:
父swf具有日志记录功能(通过javascript输出以获得额外的日志记录功能),我希望能够通过父级推送子跟踪语句。
旁注:
是的,我们能够在flashlog中看到孩子的踪迹(使用像vizzy这样的应用程序),但我想知道是否可以将这些子跟踪语句“冒泡”给父母。
我知道调试工具基本上“包装”你编译的swf以进行额外的调试但是没有那些可能吗?
提前致谢
答案 0 :(得分:0)
我很确定不能像你提出的那样用纯粹的AS3完成。
答案 1 :(得分:0)
如果你考虑一下跟踪的作用,你会发现这确实是不可能的。如果你在mm.cfg中以这种方式设置它,它会输出到控制台或日志文件。它是播放器运行时内置的功能。它与父母和孩子以及对象层次结构无关。
我认为Michael E的评论将是你能做的最好的事情。
答案 2 :(得分:0)
过去在AS2中是可能的,如果您查看未记录的Trace类http://hg.mozilla.org/tamarin-central/file/e774dfe22b39/extensions/Trace.as,看起来可能在AS3中可能。但这是不可靠的,可能会改变。当然,该类仅在调试版本中可用。具体来说,您可以setListener()
您的函数并将日志记录级别更改为首选值,以便它使用该函数而不是写入文件。
但是我建议你,如果你真的想要推进它 - 看看fdb来源,它已经知道什么是SWF加载,来自哪个源文件等等。如果你想要的只是修改它的输出打印源 - 也许这是你正在谈论的一个非常小的补丁。