0

我正在尝试熟悉一个遗留项目。在一个特定的功能中,我有代码:

public function update(userObj:Object):void
{
    var comm2:CommManager;
    comm2 = CommManager.getInstance();
    comm2.statusManager.employeeStatus(employeeId);
}

虽然我可以放置一个捕获的断点,但我无法追踪到这两行中的任何一行来查看相应的代码。在第一种情况下,调用堆栈的顶部显示:

comm::CommManager$/getInstance

接下来,调用堆栈的顶部显示:

comm::StatusManager/employeeStatus

在这两种情况下,我都会在“输出”窗口中得到一个新行:

Cannot display source code at this location.

我怎样才能弄清楚这段代码来自哪里?我不知道有任何外部链接,但这肯定不会让我感到惊讶。

附录:虽然 CommManager.as 有一个匹配的 API,但我在其中添加了相应的断点,这些断点无法捕获。另外,如果我重命名文件,我会收到一个编译错误,告诉我找不到 CommManager 类型。好像 CommManager.as 只是部分被使用。虽然 CommManager 扩展了一个名为 BaseCommComponent 的类(它扩展了 flash.events.EventDispatcher),但 BaseCommComponent 没有任何与 CommManager 中的函数同名的函数。

4

1 回答 1

0

所以事实证明,代码实际上是使用外部 swf。幸运的是,我也有匹配的 fla 文件。进入发布设置并检查“允许调试”框,以及重新编译似乎可以解决它。希望这可以帮助任何有类似问题的人。

于 2013-01-16T17:28:14.353 回答