Релиз сборки ведет себя иначе, чем отладка от 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 Builder, я получаю правильную строку:

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

Но если я делаю то же самое, используя экспортированную сборку релизов, я получаю следующее:

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

Таким образом, похоже, что сообщение в классе Error по-разному формируется при выполнении сборки релиза, и есть и другие примеры.

Итак, есть ли какая-то конфигурация, которую я должен установить, чтобы сделать выпуск таким же, как исполнение отладки?

ОБНОВИТЬ

Хотя решение от divillysausages работает, оно не будет отображать конкретную информацию, например, если есть "переменная ошибка не определена", она будет говорить "переменная /n не определена", и если код будет огромен, это будет проблема для пользователя. Так можно ли экспортировать приложение в виде отладочной сборки?

Я попытался экспортировать его как сборку релиза, а затем заменил SWF в каталоге установки SWF в моем каталоге bin-debug, и приложение работает, но оно все равно не покажет всю информацию об ошибке, если произойдет

1 ответ

Это ожидаемое поведение - сообщение, которое вы получаете в режиме отладки, полностью сглажено, просто потому, что доступны все символы отладки. В выпуске они удаляются по соображениям скорости.

Вы можете проверить документы на Error здесь: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Error.html, но это в значительной степени указывает, что основное использование в режиме отладки (полное сообщение, диалоговое окно ошибки, полная трассировка стека и т.д.).

Как правило, что вы делали в этом случае, это поймать ошибку, а затем зарегистрировать сообщение, используя любую систему ведения журнала, которую вы используете. Таким образом вы можете настроить сообщение в соответствии с вашими конкретными потребностями. Вы можете проверить все идентификаторы ошибок среды выполнения здесь: 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, содержащий все текущие ошибки (по состоянию на сегодняшний день)

licensed under cc by-sa 3.0 with attribution.