Strange behavior of Flash in Firefox (looks like multithreading!)
Recently I've noticed that my application stated failing in FireFox 6 (works ok in Chrome) with following stack trace:
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()
This stack trace suggests that SocketProtocol.onSocketData (which is an event handler for ProgressEvent.SOCKET_DATA event of a Socket) is fired before previous handler completes.
Is 开发者_JS百科there a way to further diagnose/debug this problem? Is there any specifics in how recent versions of FireFox handle Flash?
UPDATE: This only happens in FireFox 6. Previous versions of FireFox work fine.
It's hard to know what's going on based on just a stack trace, but I notice you're using ExternalInterface
. ExternalInterface
can introduce intermittent problems when called synchronously in conjunction with other communication interactions. I recommend you try using setTimeout
with a delay of 0 msec to make your ExternalInterface
call asynchronous.
精彩评论