Flash,一次Bug的思考
我绝对不算是F黑,大部分时候,我还是很挺Flash平台的,Flash提供了很好的跨平台特性以及Flash Player11后的GPU加速、Stage3D等等,对于开发者来说,绝对让人欣喜若狂(对我是这样)。
Flash出Bug也算是常有的事,不过大都还好,我能理解Adobe开发者们的辛苦,要考虑跨平台、兼容性、性能等等。从Flash Player10开始,更新也有了很大的改善,解决了很多之前的Bug。不过这两天出了一个Bug,首先对于我们的项目影响很严重,而且后续的修复不是很理想,让我不得不思考Flash平台。
使用相关技术,就得承担相关风险!ExternalInterface.call出问题了,IE浏览器下中文传到JS中变成乱码了!找到这个问题时,已经有很多用户在抱怨了,因为这个原因我们的XML格式的数据无法正确解析,造成系统无法登陆了!我们知道国内很多人都安装360安全卫士、金山卫士这样的软件,而这次Flash Player 11.8.800.168的更新是和微软一起发布的补丁,安全软件会提示该补丁让用户安装,很快就有不少用户安装了这个补丁,对于拥有上百万活跃用户的系统来说,绝对算是一次灾难!最后总算是在使用ExternalInterface.call的Flash端和JS端,对中文做编码解码解决了这个问题。
本来这还好,我们用了半天解决了这个问题,Adobe 3天后发布了新版本Flash Player,也包含解决这个问题。3天对于Adobe来说也算比较快了,就这么过去吧。可是更新了Flash Player 11.8.800.174后,又发现了修复这个问题引发的另一个问题:使用ExternalInterface.call调JS的方法时,如果JS有返回值,中文的返回值返回到Flash中,又成乱码了!我可以说脏话吗?What a fucking Adobe!
Flash Player 11.8.800.168 向JS中传参数,是乱码,但返回值还不是乱码呢,到了174,返回值就成乱码了!这很容易让人想到责任和态度,如果Flash Player的团队是积极的,应该很容易避免这个问题,相关测试应该要跟上吧!
虽然已经有一段时间没有专注做Flash平台相关的开发了,但Flash的更新我还是挺关注的,很多Flash所具有的特性我都觉得很赞。真希望Adobe不要误了Flash的前程!
对于有感情的东西,很难说抛弃!所以我会继续关注Flash平台!