问题
教学管理系统-Flex2架构实现中提到主程序使用SWFLoader加载的其它项目无法调试,设置断点不起作用。
解决
无法调试的原因是SWFLoader直接加载Release版的swf文件,其中没有包含调试信息。因此,在调试时需要加载debug版的swf文件。
当调试时,首先启动TmsClient-debug.swf,可以在TmsClient的主程序中用下面的代码判断当前是否处于调试模式
public
function
isDebug():Boolean
...
{
var url:String = this.systemManager.loaderInfo.url;
var protocol:String = URLUtil.getProtocol(url);
return protocol == "file" && url.indexOf("%2Ddebug.swf") != -1;
}
var url:String = this.systemManager.loaderInfo.url;
var protocol:String = URLUtil.getProtocol(url);
return protocol == "file" && url.indexOf("%2Ddebug.swf") != -1;
}
然后加载不同版本的swf文件
if
(isDebug())
...
{
loader.source = "StudentClient-debug.swf"
} else ... {
loader.source = "StudentClient.swf"
}
loader.source = "StudentClient-debug.swf"
} else ... {
loader.source = "StudentClient.swf"
}
这样,在StudentClient项目中设置断点后,可以进行调试。