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