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相关操作之外,写出来一些奇怪结构的诡异操作 ...
随机推荐
- ActiveX异步回调JavaScript
ActiveX异步回调JavaScript 开发环境:VC6.0. 背景知识:COM/ActiveX/JavaScript/MFC/Thread 想必用过Ajax的童鞋们都知道xmlhttp这个东西吧 ...
- 【思考题】CSDN第四届在线编程大赛2014初赛:带通配符的数
题目要求: 输入参数:参数A,含有任意个数的?的数值字符串,如:12?4,?代表一位任意数 参数B,不含?的数值字符串,长度与参数A一致 输出结果:参数A比参数 ...
- as3 页游中,新手指导中,屏蔽所有交互对象,但除了指定交互对象可用的方法【转http://blog.csdn.net/linjf520/article/details/9450945】
package { import flash.display.InteractiveObject; import flash.display.Stage; import flash.events.Mo ...
- Oracle表的常用查询实验(一)
Oracle表的常用查询实验(一) 练习1.请查询表DEPT中所有部门的情况. select * from dept; 练习2.查询表DEPT中的部门号.部门名称两个字段的所有信息. select d ...
- Android自己定义组件系列【7】——进阶实践(4)
上一篇<Android自己定义组件系列[6]--进阶实践(3)>中补充了关于Android中事件分发的过程知识.这一篇我们接着来分析任老师的<可下拉的PinnedHeaderExpa ...
- TreeView(C#)无限目录树代码片段
#region 绑定客户树 protected void bindTreeView() { TreeView1.Nodes.Clear(); string userid = Session[" ...
- 【单调队列】【3-21个人赛】【problmeB】
Problem B Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Sub ...
- C# MySQL数据库的备份 还原 初始化
// 执行创建数据库操作 this.GetExecute(G_Con, "create database if not exists NEWDB"); this.sqlAddres ...
- 【sqlserver】批量插入10万数据
DECLARE @LN VARCHAR(300),@MN VARCHAR(200),@FN VARCHAR(200)DECLARE @LN_N INT,@MN_N INT,@FN_N INTSET @ ...
- JS(移动端)自己封装移动端一些常用方法
/** * Created by Administrator on 2016/7/14. */ /*命名空间*/ window.lcf = {}; /*监听过渡结束的方法*/ lcf.transiti ...