1

我有一个需要附加 flex builder 调试器的 swf。我可以完全访问源代码,并且可以对这个 swf 进行调试构建。

但是,这个 swf 是由另一个 swf 的非调试版本加载的,我没有源代码,也无法使用它进行调试构建。

这可能吗?

我试过用两个非常简单的 swf 来模拟它,虽然当两者都是调试版本时它工作正常,但当外部 swf 是非调试版本时,虽然我可以让调试器连接,但我没有得到跟踪消息,断点不起作用,并且似乎锁定了 Flash 应用程序。

有什么想法吗?我有什么明显的遗漏吗?

4

2 回答 2

1

根据 Theo 的想法,您可能需要引用调试容器中的类。然后,只要您将非调试 swf 加载到同一个(或子)应用程序域中(并且非调试 swf 也是如此),那么您就可以闯入内部调试 swf。

您可以像这样引用类(这是一种气味,但即使是 Flex 在内部也这样做):

import com.pkg.ClassToDebug; ClassToDebug;
import com.pkg.AnotherClassToDebug; AnotherClassToDebug;
// ... etc

package com.what.ever
{
    public class ApplicationClassInDebugContainer
    {
    }
}
于 2009-04-05T19:53:46.990 回答
1

有趣的是,如果您编译一个几乎为空的 SWF,它只加载非调试 SWF(加载启用调试的 SWF)会发生什么?即 DEBUG > NON-DEBUG > DEBUG ...非调试级别是否取消其“孩子”的调试消息?

我认为您想要的是使用 flex 调试器进行堆栈跟踪等,但最好在您的 SWF 中使用自定义记录器,如果您希望有人远程调试在线版本等,这特别方便。谷歌有一些但是我想到的最新消息是ThunderBold

于 2009-04-05T00:34:01.287 回答