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平台!
Flash,一次Bug的思考的更多相关文章
- 一次关于使用status作为变量引发的bug及思考
这个bug出现在一年前,当时自己大学还没毕业,刚刚进入一家公司实习.那个时候还没有用seajs或者requirejs那样的模块化管理的库,也没有用一个自执行的函数将要执行的代码包裹起来,于是bug就在 ...
- Flash TextField selectable bug block TextEvent.Link solution
There is an old version Felx SDK bug(in my case it's Flex SDK v3.3.0.4852) that when TextField.selec ...
- 关于减少BUG的思考
开发之前,就要先设计,理清好思路:如果需求都不清楚,软件肯定有缺陷: 和客户.测试的沟通 如果开发出来的东西本身就有BUG,交给测试,会浪费很多人的时间. 开发做完一个功能后,要自己做一遍测试 自己的 ...
- 关于修改bug的思考
作者:朱金灿 来源:http://blog.csdn.net/clever101 有软件就有bug,这意味着软件研发不仅仅是新功能开发,更要拿出相当一部分精力去修改bug.但基本很多软件开发者并 ...
- 通宵修复BUG的思考
HYH.LXJ昨晚通宵修复11月版需求的bug,因为代码提到测试环境后,阻碍了一个分行进行验收测试,业务人员直接把问题反馈给了上级领导,压力下来,项目组就把问题重视起来. 对于通宵加班这件事,应该点赞 ...
- 一个友盟BUG的思考和分析:Invalid update
1.友盟错误信息 Invalid update: invalid number of rows . The number of rows contained ) must be equal to th ...
- 记一次 spinor flash 读速度优化
背景 某个项目使用的介质是 spinor, 其 bootloader 需要从 flash 中加载 os. 启动速度是一个关键指标,需要深入优化.其他部分的优化暂且略过,此篇主要记录对 nor 读速度的 ...
- Flash 无法输入中文的修正方法
在某些运行模式或运行时环境中,Flash 有一个 Bug,文本框与键盘的交互模式会无法输入中文(包括日文等带有输入法状态栏的输入模式),只要对 TextField 文本框实例的 FocusEvent. ...
- 你电梯没了—OO第二单元作业思考
写在前面 这三次电梯调度作业,主要是学习多线程并行操作,对于各个线程的时间轴的把握,互相的配合与影响,通过使用锁来解决访问冲突等方面. 个人在学会Thread相关操作之外,写出来一些奇怪结构的诡异操作 ...
随机推荐
- try/catch异常捕捉
StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); System.out.println(sw. ...
- checkbook全选/反选/全不选
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_LICENSE宏
在阅读Linux Driver源码时,我们常常会在文件的结尾处看到诸如:MODULE_AUTHOR.MODULE_DESCRIPTION.MODULE_LICENSE等宏定义,这些宏主要是定义了一些模 ...
- OAuth2.0基本流程
用户请求客户端>客户端通过在授权服务器上申请的apikey和apisceret>登录访问资源服务器
- opengl笔记—— glMultMatrixf() 区别 glLoadMatrixf()
能找到最好的解释来自:http://www.gamedev.net/topic/489879-glpushmatrixglpopmatrix--glloadmatrixf/ 原理: glPushMat ...
- 牛掰的图片等比缩放js代码
function resizeImg(img,oAW,oAH){ var oimgW = img.width, oimgH = img.height, oimg = img, oY = (oimgH/ ...
- asp.net文件操作类
/** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...
- WPF基础
1.Sender 指的是被点击的控件.默认为object类. private void btnc1_Click(object sender, RoutedEventArgs e) { Button b ...
- 去掉UItableview headerview黏性
//去掉UItableview headerview黏性 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView ...
- C语言strcmp()函数:比较字符串(区分大小写)
头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为: int strcmp(const char *s1, const char *s ...