AS3 - 捕获抛出的任何错误并跟踪它们?
AS3 - Catch ANY Error thrown and keep track of them?
我希望有很多设备来测试游戏,我发现调试游戏和解决特定代码问题的最佳方法是连接设备并在 Adobe ANIMATE 中处于调试模式,这样我就可以捕捉到输出中的任何错误 window。
例如,如果我正在调试并连接到 Animate,输出 window 将抛出如下错误:
ReferenceError:错误 #1065:未定义变量 bg_storage。
在 global/flash.utils::getDefinitionByName()
在 Game/stageAdd()[/Users/**/Game.as:360]
现在我确切地知道问题是什么以及在哪里可以找到它。我喜欢这样的错误。
我的问题:
如果我没有在调试模式下连接到 Animate 的设备,有没有办法让游戏检测到任何抛出的错误并将它们存储为字符串,这样我就可以在错误的游戏上放置一个大文本块字符串并保持跟踪。
或者至少是一种记录它们的方法?
例如:
如果抛出错误,将该错误文本设置为一个字符串变量,然后让一个文本框写出该字符串变量。
我希望这不会太混乱。如果我要以糟糕的方式进行调试,我很想知道你们如何在不连接到调试模式的情况下跟踪错误。
编辑
我可以看到一种方法是向每个函数添加一个 uncaughtErrorEvent 事件,以便能够捕获这些错误...
loadbar.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR ... )
我正在努力做到这一点,以便在游戏的任何部分抛出的任何错误都将在某处跟踪该错误到我可以调用的字符串值,这样我就可以看到在游戏测试会话期间抛出的任何错误而不会被连接到调试模式。
谢谢!
当然可以。有一个 class 正是为此而设计的:https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/UncaughtErrorEvent.html 请参阅页面底部的示例以收听该事件的正确实例。
你也有空去拿我自己的 class 做你想做的事:https://bitbucket.org/thydmitry/ru.delimiter/src/2756fadd741a6d44276fde1701470daf24cebfa8/classes/ru/delimiter/utils/Log.as?at=default&fileviewer=file-view-default
您需要将其添加到您的项目中,然后在主文档中调用 class(最好在构造函数中):
Log.create(this);
Log.handleExceptions(this, true);
我希望有很多设备来测试游戏,我发现调试游戏和解决特定代码问题的最佳方法是连接设备并在 Adobe ANIMATE 中处于调试模式,这样我就可以捕捉到输出中的任何错误 window。
例如,如果我正在调试并连接到 Animate,输出 window 将抛出如下错误:
ReferenceError:错误 #1065:未定义变量 bg_storage。 在 global/flash.utils::getDefinitionByName() 在 Game/stageAdd()[/Users/**/Game.as:360]
现在我确切地知道问题是什么以及在哪里可以找到它。我喜欢这样的错误。
我的问题: 如果我没有在调试模式下连接到 Animate 的设备,有没有办法让游戏检测到任何抛出的错误并将它们存储为字符串,这样我就可以在错误的游戏上放置一个大文本块字符串并保持跟踪。
或者至少是一种记录它们的方法?
例如: 如果抛出错误,将该错误文本设置为一个字符串变量,然后让一个文本框写出该字符串变量。
我希望这不会太混乱。如果我要以糟糕的方式进行调试,我很想知道你们如何在不连接到调试模式的情况下跟踪错误。
编辑 我可以看到一种方法是向每个函数添加一个 uncaughtErrorEvent 事件,以便能够捕获这些错误...
loadbar.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR ... )
我正在努力做到这一点,以便在游戏的任何部分抛出的任何错误都将在某处跟踪该错误到我可以调用的字符串值,这样我就可以看到在游戏测试会话期间抛出的任何错误而不会被连接到调试模式。
谢谢!
当然可以。有一个 class 正是为此而设计的:https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/UncaughtErrorEvent.html 请参阅页面底部的示例以收听该事件的正确实例。
你也有空去拿我自己的 class 做你想做的事:https://bitbucket.org/thydmitry/ru.delimiter/src/2756fadd741a6d44276fde1701470daf24cebfa8/classes/ru/delimiter/utils/Log.as?at=default&fileviewer=file-view-default
您需要将其添加到您的项目中,然后在主文档中调用 class(最好在构造函数中):
Log.create(this);
Log.handleExceptions(this, true);