上次遇到Flash在IE下的NavigateToURL被屏蔽的问题,解决方法可以用wmode的设置。
昨天夜里又遇到wmode的另外一个问题: flash里的输入文本框(CS4里纯正的TextField,type=’input’),放到网页后在火狐测试无法正确输入中文,输入法可以使用,但打进去都变乱码。
我的环境是 Firefox 3.5.3 + Flashplayer Plugin 10.0.32.18 debug版本。 IE8 + Flashplayer ActiveX 10.0.32.18 release版本。
一开始我怀疑是swf的问题,可是用IE打开看又很正常。然后又找了独立版的Flashplayer9和独立版的Flashplayer10运行都不会出现乱码。唯独火狐网页里测试有问题。
然后又怀疑是Flash CS4 的某些新功能导致发布的文件在某些情况下不可用,逐一发布了fp10、fp9、fp8三个版本的swf测试,问题依旧。
一时找不到原因,索性把swf直接拖到Firefox里看。这一拖不要紧啊,发现原因了——直接用火狐打开居然不乱码!这说明肯定是网页中放置flash的设置导致。
最后查出来问题所在: 火狐 && Flashplayer 10 Plugin && wmode==’opaque’的情况会乱码——火狐下的Flashplayer 10 Plugin运行非窗口模式的swf会有中文输入乱码的问题。(也许是Adobe的bug?)
解决方案: 还是得把wmode改成window…… 算了,我认了,window就window,想其他办法强制帧频去……
技术内容转载请注明来源,个人日记不允许转载,欢迎指出任何有错误或不够清晰的表达。可以邮件至 mousebomb@gmail.com