最近我注意到我的应用程序声明在FireFox 6中失败(在Chrome中正常工作),并且跟踪堆栈跟踪:
Error: Error #2058: There was an error decompressing the data.
at flash.utils::ByteArray/_uncompress()
at flash.utils::ByteArray/uncompress()
at com.***.client::SocketProtocol/onSocketData()
at flash.external::ExternalInterface$/_evalJS()
at flash.external::ExternalInterface$/call()
at com.***.client.utils::Browser$/openNewWindow()
at com.***.client::XpraClient/newWindowHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.***.client.xpra::Protocol/processMessage()
at com.***.client.xpra::SocketProtocol/onSocketData()
此堆栈跟踪表明SocketProtocol.onSocketData(它是Socket的ProgressEvent.SOCKET_DATA事件的事件处理程序)在上一个处理程序完成之前被触发。
有没有办法进一步诊断/调试此问题?有关FireFox最新版本如何处理Flash的具体细节吗?
更新:这只发生在FireFox 6中。以前版本的FireFox工作正常。
答案 0 :(得分:1)
基于堆栈跟踪很难知道发生了什么,但我注意到你正在使用ExternalInterface
。当与其他通信交互同步调用时,ExternalInterface
会引入间歇性问题。我建议您尝试使用setTimeout
延迟0毫秒,以使ExternalInterface
调用异步。