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相关操作之外,写出来一些奇怪结构的诡异操作 ...
随机推荐
- SD卡在单片机上的应用
(1)SD卡的引脚定义: SD卡SPI模式下与单片机的连接图: 注意:SPI模式时,这些信号需要在主机端用10~100K欧的电阻上拉. SD卡支持两种总线方式:SD方式与SPI方式. ...
- PIMPL设计模式的理解和使用
以下两段不同程序的比较 //file a.h #include "a.h" #include “ b.h” class A{ void Fun(); B b; } //file: ...
- Node.js log2: ERR when execute command >npm install
1.Node.js创建项目 项目microblog创建成功,提示:cd microblog& npm install 项目创建完成时的目录如下图所示: 2.Node.js错误 如题所言: E ...
- 【HDU 4451 Dressing】水题,组合数
有衣服.裤子.鞋数量分别为n,m,k,给出p对不和谐的衣-裤或裤-鞋搭配,问一共有多少种和谐的衣裤鞋的搭配. 全部的组合有Cn1Cm1Ck1种. 设p对中有p1对衣-裤,p2对裤-鞋,则不和谐的搭配共 ...
- python sqlite 查询表的字段名 列名
获得查询结果表的列名: [python] view plain copy print ? db = sqlite.connect('data.db') cur = db.cursor() cur ...
- IOS开发之——获取屏幕的尺寸及各模拟器代表的型号
获取屏幕尺寸 [[[UIScreen mainScreen] currentMode].size.width]; [[[UIScreen mainScreen] currentMode].size.h ...
- Cocoapod安装使用
近期换工作.项目中推荐使用Cocoapod,把经常使用的第三方库增加到project中,大致说一下流程,标记一下. 第一步:安装 CocoaPods是跑在Ruby的软件,安装可能须要几分钟.打开你的终 ...
- asp.net web api的自托管模式HttpSelfHostServer可以以控制台程序或windows服务程序为宿主,不单单依赖于IIS web服务器
Self-Hosting ASP.NET Web API http://theshravan.net/self-hosting-asp-net-web-api/ http://www.piotrwal ...
- Swift的初始化方法
我们在深入初始化方法之前,不妨先再想想Swift中的初始化想要达到一种怎样的目的. 其实就是安全.在Objective-C中,init方法是非常不安全的:没有人能保证init只被调用一次,也没有人保证 ...
- uva 10366 Faucet Flow
题意: 给出l和r,然后从l坐标到r坐标每隔两个位置有一个档板,给出挡板的高度,然后想(-1, 1)中间加水,问什么时候会溢出. 分析: 两边先找到距离(-1,1)最近的最大值L和R.接着比较两个L和 ...