Firefox中Flash的奇怪行为(看起来像多线程!)

时间:2011-09-20 12:08:48

标签: flash actionscript-3 firefox

最近我注意到我的应用程序声明在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工作正常。

1 个答案:

答案 0 :(得分:1)

基于堆栈跟踪很难知道发生了什么,但我注意到你正在使用ExternalInterface。当与其他通信交互同步调用时,ExternalInterface会引入间歇性问题。我建议您尝试使用setTimeout延迟0毫秒,以使ExternalInterface调用异步。