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相关操作之外,写出来一些奇怪结构的诡异操作 ...
随机推荐
- NoSql 精粹导读图
- 2.5 Local Methods in High Dimensions
curse of dimensionality 输入在p维立方体中符合均匀分布,如果需要覆盖比例r的体积,需要每个维度上\(e_p(r)=r^{1/p}\) \(e_{10}(0.01)=0.63,e ...
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- MVC3.0修改jquery.validate.unobtrusive.js实现气泡提示mvc错误
CSS部分 <style type="text/css"> .hide {display:none;} .poptip { position: absolute; to ...
- POJ 3468 A Simple Problem with Integers(线段树区间求和)
Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...
- 从头开始-06.C语言中预处理指令
预处理指令 不带参数的宏定义: 格式: #define 宏名 值 作用:提高代码的可读性 在程序编译前把所有出现宏名标示的位置都替换为定义宏的时候,宏名后面的值 带参数的宏定义 格式 #define ...
- .NET cookie 使用方法
创建 C# cookie,两种方法 Response.Cookies["userName"].Value = "patrick"; Response.Cooki ...
- SQL Server 事务嵌套
示例代码: DECLARE @TranCounter INT; SET @TranCounter = @@TRANCOUNT; -- Procedure called when there is -- ...
- MVC 使用PageList进行分页
1.新建MVC项目 2.在Web项目下添加PagedList nuget 命令 :install-package pagedlist.mvc 在安装完成之后,会在Content下添加PagedList ...
- 一个Socket连接管理池(心跳机制)
一个Socket连接管理池(心跳机制) http://cuisuqiang.iteye.com/blog/1489661