Chrome、FF在swf处理中的问题小记

本文讨论了在网页交互中使用Flash遇到的一个常见问题:当在不同选项卡间切换时,Flash组件可能会重新加载。文章详细分析了导致此现象的原因,并提出了一种使用移动DOM元素的解决方案,以避免Flash组件的重新渲染问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个坑最早的时候是在08年10月份左右,做网页整蛊交互的时候遇到过。

当时的需求是点击网页装扮的时候会弹出一个层,层内有很多TAB选项卡,而有一个对图片处理的swf(让用户选择一张图片、编辑图片)放在其中一个选项卡中,而当来回切换tab选项卡的时候,swf会被重新加载。那时候还没有chrome,所以在ff会遇到这个问题,IE下不会。后面在小组内我记得有总结过FF下什么情况下会触发swf的重新渲染:

1、将swf元素的display属性由none切换至block时;

2、将swf元素由页面内完全不可见的区域移动可见区域时(这一点现在需要再次证实一下);

当时的解决办法现在不大记得了,如果现在让我给一个方案,我会选择使用移动dom来处理这个问题:将swf从它的你层移动当前可见的tab层,当切换回去的时候再移回原来的位置。

 

由于最近很长的时候已经将重心转到flash相关的开发上,所以对于网页中遇到的一些问题,我能不过问都不会去仔细看。

但最近在将游戏接入新浪微博的微游戏的平台时,遇到了一个问题:就是点击游戏内(flash)一个按钮,调用页面中的js函数,这个时候会将swf隐藏(none掉了,因为swf不能设置它的wmode为transparent--透明,设置后游戏有些模块在操作中会受影响),而当处理完操作后,会再将游戏显示出来(block),然后看到游戏重新加载了,IE下没有发现此问题,chrome百分百重现此问题。后来我调试进去,蓦然发现此问题我以前遇到过,然后修整了一个,将swf的display属性设置由none <–> block改为visibility的 visible <-> hidden,这样测试现在暂时没有问题。

 

出现此问题的原因,以前查过相关资源,好像是说ff和chrome这一类的浏览器,在加载和渲染flash的时候使用了延后处理的技术,对flash的支持也没有像IE那样好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值