jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery-Flash SWF在可见之前不会初始化-我可以强制它们初始化吗? 大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个应用程序,需要在一系列行中渲染大约100个Flash图形(以及其他DOM东西),这些行在垂直方向上超出当前可见窗口多次延伸-换句话说,用户必须向下滚动才能看到所有不同的图.

此应用程序也是动态的,当用户更改DOM中的值(在页面上的任意位置)时,它将需要同时将更改传播到所有Flash图.

因此,我设置了所有externalInterface回调,并小心地让任何JS开始运行,直到非常重要的“ flashIsReady”调用为止,并且…在我尝试用新数据更新()现有的swf之前效果很好.

这是行为:
-IE / Fox中的所有swfs加载都(初始)=良好.
-使用新内容更新swfs可以在IE中运行,但不能在Fox中运行=不好
-在Fox中更新具有新内容的swfs的方法-仅在以下条件下-我向下滚动到页面底部,然后回到顶部-之前-我触发了update().

因此,每当一个名为JS的瑞士法郎说“闪存已准备就绪”时,我便开始追踪,然后我意识到,Firfox仅在瑞士法郎变得可见时才对其进行渲染.老实说-很好,实际上,我很确定IE也可以做到这一点.但是问题在于,不仅Firefox不初始化swf,而且Firefox甚至不承认swf存在(如果尚不可见,则在加载后等待).

事实证明,您会看到JS错误

“ [[FlashDOMID] .FlashMethod不是函数”.

但是,向下滚动一点,等待其可见,然后突然开始显示轨迹

“已准备好闪存”,“已准备好闪存”,一旦它们全部准备就绪,一切就可以正常工作.

有人告诉我FF不会在可见之前初始化swf的-我可以强制执行吗?如果您需要,我可以发布代码…但是它很繁重(很难从其余部分中删除相关的代码),并且(如果您愿意)我希望避免使用它.

问题很简单-您是否曾经发生过这种情况?如果是,您是否找到了解决方案?是否有人现在如何强制尚未显示的瑞士法郎初始化?多谢你们.

最佳答案
所以…

经过大量的论坛搜索-我同意,没有优雅的方法可以做到这一点哈哈!我最终寻求的解决方案基本上是为$(document).ready()上的每个swf制作JS对象.

基本上,JS对象将具有各种值,其中包括“ data”和“ isReady”.当一个swf变得可见并且会调用JS说“ im ready”时,我会简单地接住那个调用,然后找到它所引用的JS对象(我设法通过将每个swf的DOM id作为其之一传递给它flashVars;是的,这让我感到肮脏).从那里开始,基本上只是一个游戏,确保在我尝试操作每个JS之前,每个JS都具有“ isReady”.

在整个混乱中,唯一的优雅之处在于,通过使用JS对象,我仍然可以通过简单地更新各自JS对象中的“ data”属性来将新数据应用于“隐藏” swfs.然后,当swf最终变得可见时,我将更新它拥有的所有数据(即当前数据),并且效果很好,但是,我仍然同意这整个情况是不幸的.

所以… *回答.

大佬总结

以上是大佬教程为你收集整理的jQuery-Flash SWF在可见之前不会初始化-我可以强制它们初始化吗? 全部内容,希望文章能够帮你解决jQuery-Flash SWF在可见之前不会初始化-我可以强制它们初始化吗? 所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。