发布构建的行为与从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类中的消息的格式似乎有所不同,还有其他示例。

那么,我是否必须设置某种配置,以使发布执行与调试执行相同?

更新

虽然divillysausses的解决方案有效,但它不会显示特定信息,例如,如果存在"未定义的变量错误",它会说"未定义变量/n",如果代码很大,则会给用户带来问题。那么,有什么方法可以将应用程序导出为调试版本吗?

我试着像发布版本一样导出它,然后用bin调试目录中的SWF替换安装目录中的SWF,应用程序就可以工作了,但如果发生错误,它仍然不会显示所有关于错误的信息

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

您可以在此处查看有关"错误"的文档: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文件中(截至今天)

最新更新