У меня есть приложение, которому нужно визуализировать около 100 флэш-графиков (а также другие элементы DOM) в виде ряда строк, которые многократно расширяются по вертикали за пределы текущего видимого окна - иными словами, пользователям приходится прокручивать страницу вниз. увидеть все разные графики.
Это приложение также динамическое, и когда пользователь изменяет значение в DOM (где-либо на странице), ему необходимо распространить это изменение на все графики Flash одновременно.
Поэтому я настроил все обратные вызовы externalInterface и старался не допустить, чтобы какой-либо JS начинал работать до очень важного вызова flashIsReady и ... он работал великолепно, пока я не попытался обновить () существующие SWF-файлы новыми данные.
Здесь было поведение:
- Все swfs загружаются (изначально) в оба IE / Fox = хорошо.
- Обновление SWF с новым контентом работает в IE, но не в Fox = не хорошо
- Обновление SWF-файлов с новым контентом работает в Fox - ТОЛЬКО ЕСЛИ - Я прокрутил вниз до конца страницы, затем обратно наверх - ДО - Я запустил обновление ().
Итак, я начал отслеживать каждый раз, когда SWF звонил в JS, чтобы сказать, что «вспышка готова», и понял, что Firfox отображает SWF только тогда, когда они становятся видимыми. И если честно - это нормально, и на самом деле, я уверен, что IE тоже это делает. Но проблема в том, что Firefox не только не инициализирует swf, Firefox даже не признает, что swf существует (ожидайте после загрузки), если он еще не был виден.
И доказательство того, что вы получаете ошибки JS, говорящие:
"[FlashDOMID]. FlashMethod не является функцией".
Однако, немного прокрутите вниз, подождите, пока он не станет видимым, и вдруг начнёт светиться след
«Готов к работе», «Готов к работе», «Готов к работе», и как только они все готовы, все работает нормально.
Кто-то сказал мне, что FF не инициирует SWF-файлы, пока они не видны - могу ли я форсировать это? Я могу опубликовать код, если вам нужно ... но он довольно тяжелый (трудно вычеркнуть релевантное из остального), и я хотел бы избежать его (ради вас), если это возможно.
Вопрос прост - произошло ли это, и если да, то нашли ли вы решение? Кто-нибудь сейчас, как заставить еще не видимый SWF для инициализации? Спасибо, ребята.