我有一个应用程序需要在一系列行中渲染大约 100 个 Flash 图表(以及其他 DOM 内容),这些行在当前可见窗口之外垂直延伸很多倍 - 换句话说,用户必须向下滚动才能看到所有不同的图表。
此应用程序也是动态的,当用户更改 DOM(页面上的任何位置)中的值时,它需要同时将该更改传播到所有 Flash 图形。
所以我设置了所有的 externalInterface 回调,并小心地在非常重要的“flashIsReady”调用之前不让任何 JS 开始运行,并且......它工作得很好,直到我尝试用新数据 update() 现有的 swf。
这是行为: - 所有 swfs 加载(最初)在 IE/Fox = 好。- 用新内容更新 swfs 在 IE 中有效,但在 Fox 中无效 = 不好 - 用新内容更新 swfs 在 Fox 中有效 -- 仅当 -- 我向下滚动到页面底部,然后返回顶部 -- 之前 - - 我触发了更新()。
所以我开始追踪每次 swf 调用 JS 说“flash is ready”,我意识到,Firfox 只在 swf 变得可见时才渲染它们。老实说,这很好,实际上,我很确定 IE 也可以做到这一点。但问题在于,Firefox 不仅不初始化 swf,而且如果 swf 还不可见,Firefox 甚至都不承认 swf 存在(预计在 onload 之后)。
证明是你得到 JS 错误说:
“[FlashDOMID].FlashMethod 不是函数”。
但是,向下滚动一点,等到它可见,然后轨迹突然开始亮起
“Flash Ready”、“Flash Ready”、“Flash Ready”,一旦它们都准备好,一切正常。
有人告诉我,FF 在可见之前不会初始化 swf - 我可以强制吗?如果您需要,我可以发布代码......但它非常繁重(很难从其余部分中删除相关内容),如果可能的话,我想避免它(为了您的利益)。
问题很简单——你有没有遇到过这种情况,如果有,你找到解决方案了吗?有谁现在如何强制一个不可见的 swf 进行初始化?多谢你们。