3

这是一个更一般的问题,而不是“帮助修复代码”问题:

目标
父 swf a.swf 加载外部子 b.swf

子 swf 有跟踪语句:[timestamp][log level][class] msg

父 swf 是否有可能“捕获”这些跟踪语句并将它们用作字符串?

目的:
父 swf 具有日志记录功能(通过 javascript 输出以获得额外的日志记录功能),我希望能够通过父级推送子跟踪语句。

旁注:
是的,我们能够在闪存日志中看到孩子的痕迹(使用像 vizzy 这样的应用程序),但我想知道是否可以将这些孩子的跟踪语句“冒泡”给父母。

我知道调试工具基本上会“包装”您编译的 swf 以进行额外的调试,但如果没有这些工具,这可能吗?

提前致谢

4

3 回答 3

0

如果您查看未记录的 Trace 类http://hg.mozilla.org/tamarin-central/file/e774dfe22b39/extensions/Trace.as,它曾经在 AS2 中是可能的,并且看起来在 AS3 中可能是可能的。但这是不可靠的,可能会改变。当然,该类仅在调试版本中可用。具体来说,您可以setListener()使用您的函数并将日志记录级别更改为首选值,以便它使用该函数而不是写入文件。

但我会建议你,如果你真的想继续使用它 - 查看 fdb 源,它已经知道加载了什么 SWF,方法来自什么源文件等等。如果你只想修改它的输出以打印来源 - 也许这是您正在谈论的一个非常小的补丁。

于 2012-07-20T08:06:47.697 回答
0

如果您考虑一下跟踪的作用,您会发现这确实是不可能的。如果您在 mm.cfg 中以这种方式设置它,它会输出到控制台或日志文件。这是播放器运行时内置的功能。它与父母和孩子以及对象层次结构无关。

我认为 Michael E 的评论将是你能做的最好的。

于 2012-07-19T18:40:22.897 回答
0

我很确定它不能像你问的那样用纯 AS3 来完成。

于 2012-07-19T18:26:45.223 回答