我有一个swf,我需要将flex builder调试器附加到。我可以完全访问源代码,并可以对此swf进行调试构建。
但是,这个swf是由另一个我没有源代码的swf的非调试版本加载的,并且不能用它进行调试构建。
这可能吗?
我尝试使用两个非常简单的swfs来模拟它,虽然它们都是调试版本时工作正常,但当外部swf是非调试版本时,我可以让调试器连接,我不会获取跟踪消息,断点不起作用,似乎锁定了Flash应用程序。
有什么想法?有什么明显的东西我不见了吗?
答案 0 :(得分:1)
有趣的是,如果你编译一个几乎空的SWF,只是在非调试SWF(加载启用调试的SWF)中加载会发生什么?即DEBUG>非调查> DEBUG ...非调试级别是否为其“子级”取消调试消息?
我认为你想要的是使用flex调试器来实现堆栈跟踪等。但是在SWF中使用自定义记录器是很好的,如果你想让某人远程调试在线版本等,这是特别方便的。有几个谷歌,但最新的从我的头脑是ThunderBold。
答案 1 :(得分:1)
根据Theo的想法,您可能需要引用调试容器中的类。然后,只要您将非调试swf加载到相同(或子)应用程序域(并且非调试swf执行相同操作),那么您将能够进入内部调试swf。
你可以像这样引用类(这是一种气味,但即使Flex在内部也是如此):
import com.pkg.ClassToDebug; ClassToDebug;
import com.pkg.AnotherClassToDebug; AnotherClassToDebug;
// ... etc
package com.what.ever
{
public class ApplicationClassInDebugContainer
{
}
}