做浏览器开发10年,是有内核的浏览器,不是国内以前那种套壳浏览器。

最早非IE浏览器的插件的api是NPAPI, 这套api比较简单,也就是提供给插件一个绘图区,让插件绘制一些简单的内容。再和浏览器做些简单的交互。NPAPI的本意是这样的,但flash把它玩坏了。flash最早确实只是简单的解析自己的swf文件做点动画,后来flash越来越复杂,自带一个vm,解析动画,自带actionscript引擎,操作swf内的object. 后来还提供硬体加速来播放视频, 访问麦克风。 flash走火入魔了,你做了浏览器做的事,下一步是不是做操作系统的事?来个flash OS怎么样?

NPAPI提供的简单介面,根本没有预期到一个插件会做这么多事情,主循环里,只提供了几个api调用,让插件去绘制给定的区域,但flash做点事情太多了,浏览器原本只给你1s钟刷一下墙,你丫的还要干一堆其它的。1s完不成,浏览器也只能等你。于是大家经常看到网页卡住不动了。浏览器表示,这个锅我不能背啊。

而flash插件自身,也由于过于复杂,也采用了多线程甚至多进程,在其他线程里把该准备的东西都准备好,浏览器叫我1s刷完自己的黑板,我就能刷完。但现实世界没那么理想化。记得三星的limo平台开发浏览器时,当时flash插件是印度人提供的引擎,线程同步做一塌糊涂,想完全做好线程同步,就会卡住浏览器。 不卡住,他们的插件机会在屏幕上乱画,超出浏览器给他的区域,就会把浏览器搞挂。我们做浏览器的很受伤,凭什么你flash插件的问题,让我来浏览器来背呢?我想苹果的iphone肯定会遇到类似的问题,所以人家干脆不支持,简直大快人心。

前面卡顿的以及和浏览器交互的问题,chromium里引入了ppapi,这套api很强大,卡顿这种问题是可以解决的。但安全问题,就没那么理想化了。前面也说了npapi,浏览器只提供介面,flash插件插件除了刷黑板以外,有没有挖墙角,浏览器完全不知道。flash插件的输入是来自网路的任意swf文件,黑客攻击一下,让flash插件挖一下墙角(偷个机器上的文件),在墙上打个洞(开个后门),把房子推掉(格式化硬碟),都是有可能的。

有人说,浏览器解析html,输入也不稳定,不也会有这种可能吗?是的,浏览器也有很多漏洞,以前的浏览器确实攻击者能肆意妄为。chromium引入沙箱结构,不同的任务在不同进程中进行。下载数据在一个进程,这个进程因为要处理缓存,所以可以访问硬碟,解析html在一盒进程,这个进程只能计算,他所在的namespace没有文件(这是操作系统提供的机制),没有网路,渲染进程只能访问渲染资源。 这就是所谓的沙箱,接受不稳定输入的html解析进程,即使有漏洞,也就是自己挂掉,也访问不了网路和磁碟。很理想吧,可flash不遵循这套东西,它什么都自己做,也就是破坏了沙箱机制。 chromium的开发人员,把flash扔到一个独立的进程中去,你挂掉就挂掉,别把我也弄挂掉了。可安全问题,还是没解决。chromium被爆安全漏洞,往往很快就做出反应,解决了。可有时候浏览器知道flash的插件上有个漏洞,但adobe根本不及时修。就算Adobe提供了新的插件,用户也不及时更新。浏览器开发人员做再多努力,你flash自己要作死,我们也挡不住。所以,最好的方法是,不带你玩了。这样世界就清净了。

大家都说乔布斯不支持flash,是商业目的,这个不好评价. 但从浏览器开发角度来说,丢掉flash真是大赞。


1.很多人并不了解Flash...Flash是一套技术的整体名称...语言是ActionScript3...虚拟机也就是类似JVM的东西有两个一个是FlashPlayer一个是FlashAIR...FlashPlayer是在浏览器里运行的...也就是被苹果反对的...FlashAIR是原生的app...也就是以FlashAIR方式可以一套程序发布为windows的exe文件安卓的apk文件苹果的ipa文件...更早还可以运行在linux和黑莓上...所谓的手机开发是指FlashAIR...而不是运行在浏览器上的那个东西...FlashAIR主要依靠Flex框架来进行App开发...由于Adobe的战略问题...Adobe只提供FlashAIR的虚拟机的升级维护...而把Flex捐献给了Apache...现在Flex也依然有效...只不过很小众...

2.前文提到了Adobe的战略问题...大家也知道统一开发中Flash的强劲对手是HTML5...也就是Phonegap又叫Cordova...但很少有人知道Phonegap是Adobe的...这个就是战略问题...Adobe选择了HTML5...Flash并不是因为技术而落败的...

3.Flash的缺点...Flash的缺点就是树敌太多...任何一个手机平台...最希望的就是开发者只给自己的平台开发app...在自己弱势的时候...平台希望通过一种发布部署方案兼容别人的程序...比如winphone...黑莓等...在自己强势的时候...希望自己的程序完全不能运行在别人的平台上...所以...那么问题来了...Adobe是个什么鬼?FlashAIR是个什么鬼?要统一app开发?必然会遭到最大限度的抵制...但html5抵制的呼声却不是很大...因为html5毕竟是一堆厂商定制的...所以adobe选择html5是明智的...

4.html5能走到哪里...本质上来说...html5也会被原生程序灭亡的...因为平台开发的封闭是所有操作平台的梦想...但google成功的给html5注入了一针强心剂...没错...kotlin...这得使多少开发者失去对安卓原生开发的信心...坚定支持html5...至于FlashAIR...那是一个时代的神迹...就和Delphi一样...这个世界上最优秀的往往生存不下来...优胜劣汰并不正确...推荐一个老电影... 异次元杀阵...活下来的往往是最差的...


这方面是有过尝试的,主要有基于starling、feathers、air几种方案。

不要听那些吃瓜群众瞎起哄,Flash错失移动领域最主要的原因是Adobe收取设备授权费等一系列营销策略和乔布斯的禁止Flash事件导致的,其次Flash是一种私有技术,在优化方面只能由Adobe来维护,所以各种漏洞修补不及时、优化不到位导致机器发热等造成了墙倒众人推的现象,但Flash给互联网发展带来的贡献是巨大且不可磨灭的,也为H5的迅速发展提供了很多宝贵的开发经验。很多现有H5框架和技术都是在Flash社区中承载而来,其中包括著名的AngularJS、Phaser、龙骨DragonBones、Away3D、Minko等等,甚至众人津津乐道的HTML5 VideoPlayer视频播放器也是从Flash领域变换而来,具体可以参考白鹭创始人之一马鉴在知乎上的回答,我在这里就不再搬砖了。

就目前来讲,由于Flash的市场占有率和发展前景已经大不如前,建议你还是转到HTML5上来比较好,而且Flash转HTML5的学习成本并不高,反而比原本的前端开发转起来轻松百倍,因为原Flash开发者就是干这些的,Flash时代有多少动画交互和游戏的案例,而原Web开发者以前大部分都是写页面布局或者传统行业业务逻辑的,这方面你不需要有什么心理障碍。

HTML5你需要学习的除了JS,还有CSS和HTML,而且具体性能表现在pc端、iOS及Android上都不同,不过兼容性较以往已经有很大改进了,是个有潜力有发展空间的领域,继续死守Flash恐怕很快会被淘汰的。


  国外媒体报道,Adobe发表声明表示,鼓励开发人员使用新的web标准,比如HTML5,并停止使用Flash。同时将Flash重新命名为AnimateCC,弃用原来的命名FlashProfessionalCC。

  在过去的十年里,Flash已经逐渐在人们的视线中淡出。当然最大的原因是乔布斯决定iOS不支持Flash,目前只有部分智能手机支持Flash。另外的原因是它容易造成安全隐患。尽管Flash最初在创建网页游戏和动画方面发挥了很大作用,但它的缺点也越来越突出。例如Flash页面和Flash播放器载入很慢同时快速消耗笔记本电量。而且Flash一直以来的安全问题也使得网页浏览者面临极大风险。

  HTML5目前已经成为代替Flash的首选标准。放弃Flash之后,Adobe能够更好地专注于开发新的动画工具。FlashProfessionalCC已经能够创建HTML5内容,事实上HTML5已经替代了Flash三分之一的工作内容。

  将FlashProfessionalCC更名为AnimateCC将有望扩大Adobe的接受度并提高销量。


这年头居然还有人吹flash?


主要是通用性和运行效率问题,首先flash不是一个开源标准,虽然flash是一个跨平台框架,实际上在很多平台上支持并不好,(比如ios系统)。

其次flash这种插件性质的系统严重影响浏览器的安全性,淘汰插件已经是浏览器的一个发展趋势,以后的浏览器不会对activex控制项提供支持。

另外flash对系统资源和电量的消耗都很大,移动互联网时代这种高消耗的产品肯定会被淘汰


一、由于强大的flash作为富媒体寄生在浏览器,阻挡了各浏览器的发展,于是各厂商联手以安全为名义集体干掉flash为HTML5让位置。谁会允许自己浏览器里有比自己强大的插件存在。

二、flash没有把握住HTML5流行趋势,总想作为h5的竞争对手而存在。现在flash已经更名为animate cc2017里,只针对h5的canvas和webgl动画为主的支持,这可能是在为未来布局。

三、视频和在线游戏领域flash依然活跃著。未来h5一定会侵蚀这个市场。flash没有死,更名改姓要重新开始,但是否能再h5领域火起来就不一定了。最近又再折腾HTML6标准了。看Adobe能否东山再起


是楼主这意见,是因为在flash方面比较强吧? flash的运行率,不需要程序员,普通人用台i3打开个qq菜园都看得出有多慢,更别说arm的cpu了。bug比星星还多,对资源的胃口又十分大。


大哥,先有的flash, 后有的H5. 你跑过来问flash为啥不取代H5, 不是开倒车吗?

H5作为更新的技术,当然要比flash好用了。h5就是html5,现在的浏览器的话都可以原生支持,而flash 还要先装个插件才能用。flash还特别吃资源,配置不好的电脑跑个复杂的flash一会儿就开始发热了。而且flash能做的东西H5都能做,所以当然是H5更好啊。


推荐阅读:
相关文章