I have an application that should display about 100 flash graphs (as well as other DOM materials) in a series of lines that expand vertically many times outside the current visible window - in other words, users have to scroll down to see all the different graphs.
This application is also dynamic, and when the user changes the value in the DOM (anywhere on the page), he will have to apply this change to all Flash graphics at the same time.
So, I set up all the external externalInterface external callbacks and tried to prevent any JS from working until such an important “flashIsReady” call came up and ... it worked fine until I tried to update () the existing one swf using new data.
Here was the behavior: - All swfs loading (initially) in IE / Fox = good. - Updating swfs with new content works in IE, but not in Fox = not good - Updating swfs with new content works in Fox - IF ONLY - I scroll down to the bottom of the page and then back to the top - BEFORE - I called for an update ().
So, I started tracking every time swf called JS to say “flash is ready,” and I realized that Firfox only displays swfs when they become visible. And to be honest, that’s fine, and in fact, I’m sure IE does that too. But the problem is that Firefox does not initialize swf, Firefox does not even recognize that swf exists (expected after onload) if it was not already visible.
And the proof is that you get JS errors saying:
"[FlashDOMID] .FlashMethod is not a function."
However, scroll down a bit, wait until it becomes visible, and suddenly the track starts to glow
Ready Flash, Flash Ready, Flash Ready, and as soon as they are all ready, everything will be fine.
- , FF swf , - ? , ... ( ), ( ), .
: , , ? - , swf ? , .