发布版本的行为与Flash Builder的调试不同

时间:2013-11-25 10:32:40

标签: actionscript-3 flash flex flash-builder

在导出发布版本时,从Flash构建器调试时工作的东西是否有可能有所不同?

例如,我有这个:

private function getErrorText(error:Error):String{
            var result:String = "";
            result = "FehlerArt: " + error.name + "//" + (error.message as String).substring(0, (error.message as String).indexOf(":")) +  "\n";
            result += "Fehler: " + (error.message as String).substring((error.message as String).indexOf(":") + 1) + "\n";
            result += "Komponente: " + getComponentID();
            return result;
        }

当我使用调试器im Flash构建器执行此操作时,我得到正确的字符串:

FehlerArt: ReferenceError//Error #1065
Fehler:  Variable mistake is not defined.
Komponente: button1

但是如果我使用导出的版本构建做同样的事情,我得到这个:

FehlerArt: ReferenceError//
Fehler: Error #1065
Komponente: button1

因此,在执行发布版本时,看起来Error类中的消息的格式不同,还有其他示例。

那么我是否需要设置一些配置来使发布执行与调试执行相同?

更新

虽然divillysausages的解决方案有效,但它不会显示具体信息,例如,如果存在“未定义的变量错误”,则会说“变量/ n未定义”,如果代码很大,则对用户来说将是一个问题。那么有没有办法将应用程序导出为调试版本?

我尝试将其导出为发布版本,然后使用我的bin-debug目录中的SWF替换安装目录中的SWF,并且应用程序正常工作,但如果发生错误,它仍然不会显示有关错误的所有信息

1 个答案:

答案 0 :(得分:2)

这是预期的行为 - 您在调试模式下获得的消息已完全充实,因为所有调试符号都可用。在发布时,它们因速度原因被删除。

您可以在这里查看有关Error的文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Error.html但它几乎指定它的主要用途是处于调试模式(完整消息,错误对话框,完整堆栈跟踪等)。

通常,在这种情况下,您要做的是捕获错误,然后使用您拥有的任何日志记录系统记录消息。这样您就可以根据您的确切需求自定义消息。您可以在此处查看所有运行时错误ID:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/runtimeErrors.html

<强>更新

我编写了一个类来擦除上面的链接以动态显示运行时错误,因此您不需要为每个链接写出自定义消息。你可以在这里得到它:http://divillysausages.com/blog/making_sense_of_as3_runtime_errors_at_runtime

还包含在包含所有当前错误的XML文件中(截至今天)