2011-09-20 89 views
0

最近我发现我的应用程序规定在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有什么具体细节?

UPDATE:这只发生在FireFox 6.以前的FireFox版本工作正常。

+0

而不是跟踪,使一些Loader.load('跟踪语句')。并上传东西在线并启动它。通常,我这样做,当我需要在浏览器中调试。如果有人有更好的解决方案,请分享。 –

+0

我有我的内部痕迹,他们基本上确认onSocketData()之前调用onSocketData()完成,这应该不会发生。 –

+0

你使用任何类型的JS?因为我在MacOS上遇到了Safari的一些问题。当我使用SwfAddress时,不知怎么,在大约1 - 1.5秒内一次通话后,我得到了第二个相同的电话。我的内容正在重新加载。事件已经是一样的。可能会有更多像这样的问题。我通过检查电话是否收到了与我再次收到的姓名相同的名字来解决我的问题 - >什么也不做。 –

回答

1

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