Actionscript 3 释放flash播放器中的StackTrace
我在获取错误跟踪方面有问题。 当我在debug player中使用error.getStackTrace()时,它可以正常工作Actionscript 3 释放flash播放器中的StackTrace,actionscript-3,stack-trace,flash,Actionscript 3,Stack Trace,Flash,我在获取错误跟踪方面有问题。 当我在debug player中使用error.getStackTrace()时,它可以正常工作 ReferenceError: Error #1056: РќРµ удается создать свойство asdad РІ starling.display.Stage. at app.views::MachineHeader/onSoundButtonTriggered() [/var/lib/jenkins
ReferenceError: Error #1056: Не удается создать свойство asdad в starling.display.Stage. at app.views::MachineHeader/onSoundButtonTriggered()
[/var/lib/jenkins/jobs/.../src/app/views/MachineHeader.as:111] at starling.events::EventDispatcher/invokeEvent()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/EventDispatcher.as:141] at starling.events::EventDispatcher/dispatchEvent()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/EventDispatcher.as:112] at starling.events::EventDispatcher/dispatchEventWith()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/EventDispatcher.as:190] at org.feathers.controls::Button/button_touchHandler()
[/var/lib/jenkins/jobs/.../workspace/src/org/feathers/controls/Button.as:3052] at starling.events::EventDispatcher/invokeEvent()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/EventDispatcher.as:141] at starling.events::TouchEvent/dispatch()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/TouchEvent.as:174] at starling.events::Touch/dispatchEvent()
[/var/lib/jenkins/jobs/.../workspace/src/starling/events/Touch.as:231]
但在发布时,玩家stackTrace看起来像:
ReferenceError: Error #1056
代码:
调试播放器:Linux 11.2
发布播放器:PepperFlash 11.9
我做错了什么?如何在release player上获取stacktrace
比你强。根据Adobe的API参考 “对于Flash Player 11.4及更早版本和AIR 3.4及更早版本,堆栈 跟踪仅在代码在调试器版本中运行时可用 在非调试器中使用Flash Player或空中调试启动器(ADL) 调用此方法将返回null。“
对不起,这是没办法的(要在release player(11.5+)中启用stacktraces,您必须使用swf version=18编译swf
this.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onGlobalErrorsHandler);
private function onGlobalErrorsHandler(e:UncaughtErrorEvent):void {
if (_errorList[e.errorID]) {
e.preventDefault();
return;
}
trace(e.error.getStackTrace());
var data:Object = {};
data["login"] = AMFService.instance.login;
data["error_type"] = String(e.error.errorID);
data["stacktrace"] = e.error.getStackTrace();
AMFService.instance.sendError("statistics.error_send", data);
_errorList[e.errorID] = e.error;
e.preventDefault();
}