辑导读:Adobe Flash退出历史舞台,有人唏嘘,有人感慨,有人遗憾。基于此,本文作者回顾了Adobe Flash20多年的历史沉浮,希望对你有帮助。
篇幅关系,我们分两部分刊出,此为第二部分。
全面回顾这一平台的过去时,得出它为Web所做出的贡献远大于破坏这一结论并不难。
划重点:
除了易于使用的绘画工具以及共同构成Flash基础的Web播放器插件以外,Flash的另一个关键元素是它的多功能性。
随着Flash不断扩展自己的能力,它造就了一个产业,孵化出动画、游戏、Web开发、在线广告以及网络视频等领域大大小小的无数公司。
到底是谁杀死了Flash?从某种程度来说,我们都是共谋。但主犯是Adobe、Macromedia以及苹果。
到1998年,Flash已经在Web上站稳了脚跟。对于那些想要对当时的Web标准所提供的东西更酷炫一点的网站开发者来说,Flash是事实上的选择。在那些把Web看成是令人兴奋的新媒介的创意艺术家当中,Flash越来越受欢迎。
除了易于使用的绘画工具以及共同构成Flash基础的Web播放器插件以外,另一个关键元素是它的多功能性。这种多功能性源于Flash将多媒体内容与交互性结合在一起的能力。时至今日, Gay也承认,作为Flash取得巨大成功的关键组成部分,互动性要归功于MacUser 杂志的一位记者。
Gay说:“FutureSplash Animator发布前我们给这帮家伙看了预览。其中一位看过的人说,‘你真的应该加个按钮上去。’ 我们的态度是:“一个按钮!?看起来是个好主意。”
在发布之前,Flash的程序员已经弄好了播放、停止、搜索和定位框之类的按钮。Gay说:“做互动差不多是最后一分钟的事。这项功能确实很简单。但却它发挥了很大的作用。这绝对是那位评测人的点子。”
有了这项简单功能之后,Flash可就不仅仅是有主动性,不仅仅只是动画引擎了。它甚至可以(而且经常会)为整个网站提供支撑。当然,这件事情是好是坏很难说,因为Flash的两面谁都看得见:基于Flash的网站既有行为的荒诞,也有带动起来的繁荣。
在Flash 2推出之后,这种基本的交互性还获得了类似gotoAndPlay 或nextScene之类的嵌套功能的支持,从而可以控制在时间轴里面的位置。有个聪明人意识到了这些新功能的真正潜力,于是跟人共同开发了一款基于Flash的弹球游戏。Gay说:“我们觉得这是不可能的。 但是不可能每天都会出现——开发者总能把事情给搞定。”
Web漫画《 Silicon Slip》,1996年发行,因为Flash才有了诞生的可能。
Tom Fulp 就是其中一位挑战极限的开发人员,当时他拥有一个名为Newgrounds 的网站——上面有几个(颇有不雅)的笑话网页以及一些简单的JavaScript游戏。从1998年开始他就玩Flash了,很快她就想出了Teletubby Fun Land,这是一款用Flash技术驱动的简单游戏,喜欢玩耍的儿童电视角色在里面对羊做着不可描述的事情,还喝伏特加酒,玩枪,以及其他不是这个年龄该干的事情(BBC对此一点都不觉得好笑)。
Fulp 说:“Flash是我一直梦寐以求的创意工具。”终于有一款工具能够让他以一种简便的方式将动画和代码结合到一起了——尽管在初期时其实并没有太多的代码可研。Flash的编程语言ActionScript (由Gary Grossman开发)直到2000年8月 Flash 5投放市场后才出现,甚至在Flash 4引入Actions之前,条件逻辑和基本变量都还没有实现妥当。但是就像早期Flash弹球游戏的开发者一样,Fulp也找到了自己的办法。
他的基于Flash 3的点击型的冒险/射击+暴力校园游戏可不只是火了而已, 这款游戏还打响了用Flash制作游戏的第一枪。Fulp很快就在他的网站上创建了一个名为“The Portal”的页面,用来展示他尚未完成的作品,不过不久之后,其他人也开始上传自己的Flash游戏和动画。到2001年互联网泡沫破灭时,Fulp 和他的一小撮全职员工已经把Newgrounds 变成了全球最大,最活跃的在线用户社区之一,也成为了Web事实上的Flash娱乐内容集散地。
Armor Games创始人Dan McNeely说:“基本上Newgrounds是一个人人都可以提交其[Flash]游戏并对其进行测试的地方。”在这里,任何人都可以发布自己的Flash游戏和电影,并且在短短的几年内,它不仅让Fulp赚到了钱,而且众多Flash创作者都可以分一杯羹。
能够被列为首页的精选具有巨大意义——这不仅能增强信心,而且还能吸引了大规模用户的眼球,让他们去试玩。Fulp 说,在巅峰时期,Newgrounds 每月能够获得大约1800万的独立访客。所有这些关注被证明是非常有利可图的。
McNeely说,从2005年左右开始,顶级的Flash游戏开发者开发的每个游戏光赞助就可以赚五到六位数。大多数人只需要在游戏加载的时候或者在标题屏幕上把另一家企业的促销材料列上去就能拿到这笔钱。
Flash的娱乐产业的繁荣并不仅限于Newgrounds 。McNeely说 ,自己的Armor Games每天的访客数可高达120万。其他的几个Flash游戏和动画门户网站,包括Kongregate、Addicting Games以及Adultwim.com等,访问量也非常可观。
所有这些都是Flash驱动的内容产业的一部分。随着Flash不断扩展自己的能力(后来又渗透到桌面和嵌入式软件),它造就了一个产业,孵化出动画、游戏、Web开发、在线广告等领域大大小小的无数公司。
Jackson 说:“我还记得,当某人发现我参与了推动Flash发展之后,他对我说,‘噢,我真的好好感谢你。’ 为什么要感谢我?他说:“因为你给了我一份职业。” 当然,过去也有人对我们表示过感谢,但都是因为我们提供了一个不错的工具或者我们做过的某件事。当然那,这些也很不错。但这个家伙是因为我们为他提供了一份职业而表示感谢。这可把我惊到了,我真的是诚惶诚恐。”
Flash创作出了规模庞大的各种各样的Web内容,类似地,Flash在其他地方产生的影响也许更大:这个地方就是视频。
Gay回忆说:“在Macromedia内部,我们对要不要往Flash里面添加视频是有争执的。我们的担心是,如果我们做视频的话,会被微软和Real Networks碾压。”
此时,几家巨头已经谋划了自己的Web视频解决方案,但是Gay注意到那些解决方案有两个共同的弱点。一是这些竞争者都试图复制电视体验,但互联网还不足以提供那种体验;二是他们都采用了“有缺陷的网络协议,而那些协议在穿越防火墙时或当时互联网的各种混乱情况下表现都不是太好”。
Gay认为自己可以提供点新鲜的不一样的东西,从而将Flash的简单性扩展到通信领域。他说:“我们称之为Tin Can Team。” 这个Tin Can团队搭建了一个双向的Flash视频和音频通信服务器,服务器推出后不久,一家名为YouTube的小型视频共享初创企业便开始试用(并随后获取了许可)。在2015年之前Flash一直都YouTube的默认播放器。它还用Macromedia Breeze(现在叫做Adobe Connect)闯入了WebEx的领地,不过跟YouTube的交易的确是改变了一切的那个事件。
不久之后,就像对动画、Web游戏以及华丽的网站和广告所做过的事情一样,Flash很快就占领了Web视频领域。
Jackson说:“人人都得在某个时候下个Flash播放器。这不是因为Web网页要播放Flash动画,而是因为播放视频的需要,大家在浏览器上面就是这么看视频的。”
Adobe清楚地意识到了这一点。2005年,在首次对收购Flash表示拒绝的十年之后,作为36亿美元收购Macromedia的一部分,他们拿到了这项技术。Adobe当时的CEO Bruce Chizen后来告诉Jackson说,其中的30亿美元就为了买下Flash,剩下的0.6亿美元是所有其他一切的价值之和——包括Macromedia这个品牌,以及它的专利、技术,和所有的其他产品等等。
但是,尽管在市场上占据了主导地位,尽管作为一项技术Flash取得了各种成功,但Flash从来都没有迈过那道坎——从事实上的标准过渡到实际的标准。慢慢的,真正的Web标准出现了。HTML和CSS变得更加的强大。它们以及其他Web标准(比方说SVG和JavaScript)的实现在不同浏览器之间表现得更加一致。随着时间的流逝,Flash在Web上渐渐失去了一些竞争优势。
被Adobe收归旗下之后下,Gay继续前进,Flash也试图继续推进。Flash Player增加了3D渲染,Adobe随后推出了Flex Builder和Adobe Integrated Runtime(AIR)产品,目的是想让Flash 成为完整的跨平台(台式机,众多嵌入式计算平台以及手机)应用环境。移动是Flash要征服的下一个前沿领域,随着iPhone和Google的Android平台的迅猛发展,如果能够完成强有力的过渡的话,Flash的前景将一片光明。
但苹果CEO兼联合创始人史蒂夫·乔布斯的想法不一样。 那个男人终于要来取你的命了,Flash。
2010年4月29日,乔布斯发表了一封名为《关于Flash的一点思考》的公开信。在信中,他指出了Flash的封闭性和专有性,Flash由Adobe完全拥有和控制,并且需要浏览器插件才能在Web上使用。此外,他补充说,Flash在可靠性(当时显然是造成“Mac崩溃的第一大原因”)、安全性以及性能方面都越来越成为问题。
此外,Flash被认为是针对鼠标输入而不是多点触摸而设计的,这意味着Web开发人员需要彻底修改设计才能消除悬停/翻转触发等界面元素。而且,似乎还嫌在苹果的设备上对Flash的追杀不够,乔布斯补充说,苹果希望在自己平台上的APP能够利用平台特定的功能,但Adobe的跨平台开发工具对此类功能的支持速度很慢。
当然,Flash推出了很多很棒的游戏,但是苹果的应用商店上面也有很多出色的游戏。进入移动时代后,乔布斯写道:“Flash力所不逮。”
业界对此的反应不一。但可以肯定的是,Mobile Flash在努力克服自身的性能和可靠性问题。2011年11月,Adobe放弃了,并将自身的移动工具开发重点转向了HTML5。
那么是乔布斯杀死了Flash吗? Dan McNeely认为是的。他说:“他有点像给棺材板钉上了第一颗钉子。我认为其他的一切都源于此。” Tom Fulp的表态要谨慎些——他指出了智能手机为小型开发者提供的非Flash市场的价值很大,但他也同意“当史蒂夫·乔布斯写下他的《关于Flash的一点思考》那封信时,你会感觉到对Flash的信心开始慢慢枯竭”。
Jonathan Gay和Eric Zocher都认为转折点要发生得更早一些。在Gay看来,把Flash变成了企业平台是迈出了错误的一步,这个过程从Macromedia那时候就开始了。他说:“我一直都反对这个主意。我们本可以为媒体和创意专业人士等做更多的工作。做[企业端]的事情我认为多少分散了我们的注意力。”
这是一种干扰,是Flash变得臃肿的源头,令其更难以快速地进入手机市场。
Zocher 补充说,应用商店带来了范式转变,这种转移使得两件事情都变得前所未有的容易:一是开发者可以通过庞大的受众群体利用其软件来获利;二是各大品牌可以通过免费app给消费者的脑海打下印记。他指出:“还有一件事情对Flash是不利的。那就是以照片为中心的Web。”可称之为Instagram 效应——朝着主要由大规模静态相片组成的网站的过渡,使得Flash变得可有可无。
那么我们再回到本节开头提出的那个问题:到底是谁杀死了Flash?从某种程度来说,我们都是共谋,但主犯是Adobe、Macromedia以及苹果。
数以百万计的人可能不会对Flash的死亡表示哀悼,因为有时候为了看个视频或者玩个Web小游戏他们不得不没完没了地更新这个烦人的插件(更不用说Flash存在的无数安全问题了)。但是对于像Dan McNeely这样的人来说,Flash的即将死亡给他留下了一个永远也无法填补的大洞。
现在,游戏制作者可以选择的工具多到令人眼花缭乱,包括Unity、Game Maker、Godot、Construct、Phaser 等,其中的很多工具采用的都是Flash以内容为中心的开发方法,并且其中的大多数都扩展了Flash的“一次开发,随处部署”的开发哲学。但是McNeely和Fulp均认为,那些都没有Flash那么的有趣、简单或者易于使用。
Web开发者Rob Eberhardt 说 ,网站开发也是这样——现代的工具功能强大,但是他和他的现任老板“一直都很怀念Flash以及用Flash进行创意工作的绝佳体验。”
现如今,Flash变成了过街老鼠人人喊打,但其实Flash是早期Web的英雄。
浏览器插件Flash Player现在也许已经是生不如死了。但是从技术上讲,创作工具Flash 仍然活着而且还在不断发展。它的实用性已经没那么强了,但仍然是流行的动画制作工具,就像前面提到的那样,在不同的商业场景下它还维系着一定的受众。而在Newgrounds (还有其他地方吗?)这里,尽管他们早就支持了HTML5,但通过开源的浏览器内置仿真,特定的Flash内容依然还可以呈现(多少有点讽刺)。
但是,除了延续的生命之外,在过去那个自己的阴影之下,我们该如何回顾Flash留下来的遗产呢?
在Jonathan Gay看来,有3点很关键。第一,是Flash在UX(用户体验)设计的兴起中起到了重要作用,因为Flash迫使开发人员(尤其是Web开发人员)要思考用户如何与计算机和Web进行交互。其次是视频,比方说Flash“为YouTube提供了管道”来自互联网上创建业余的短视频。
但他表示,“最大的遗产可能是帮助创意人士进入到交互式媒体的世界。”的确,就像Tom Fulp所指出的那样:“Flash为这个行业引入了大量此前从未有过的新声音。那些在行业家庭之外成长的孩子,那些远离工业城市的孩子。要想打入游戏或电影行业会令人感到畏缩,而用Flash来制作Web内容却非常诱人。”
因此,哪怕我们当中的很多人现在对弹出窗口要我们启用Flash的提示冷嘲热讽,或者对该平台涉及到安全问题的一声叹息,但全面回顾这一平台的过去时,得出它为Web所做出的贡献远大于破坏这一结论并不难。尤其是考虑到Flash强大的简单性为几代职业人士提供了生计,怎么去评价这个平台留下的遗产都不会被夸大。
原文发表在https://arstechnica.com上,标题是:The rise and fall of Adobe Flash
作者:神译局
原文链接:https://36kr.com/p/792157010478855
本文由 @神译局 授权发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Unsplash,基于CC0协议。
几年,人们几乎只会在一种情况下,把目光放在 Flash 身上。
不是因为它发布了多么炫酷的更新,而是视频播放不了的时候,它不停地被禁止,在弹窗上 “ 卑微 ” 请求权限。
仅这一次允许运行 Flash,落泪了▼
从刚开始的「 网站需要你的许可才能运行 Flash 」,到「 默认禁用 Flash 」,再到最后「 将完全移除 Flash 」。
弹窗一次又一次地敲钟:属于Flash Player 的时代,马上就要结束了。
曾经它是人们玩游戏、看视频的默认方式,三年前,八成的 Chrome 用户还每天使用 Flash 访问网站。
然而,现在所有网站中只有 3.9% 在使用 Flash( 数据来源于 W3Techs 的一份报告 )。2017 年,Adobe 自己也已经宣布,将在 2020 年底停止支持。
若要问它为何会被整个行业、乃至自己亲妈放弃?
总结起来无外乎是这四宗罪:不安全、不老实、不高效、不开放。
15 年时 Flash 的漏洞数量,就已经稳居榜首,占据将近七成的江山,平均每周有 6 个新的漏洞出现,安全性差得一塌糊涂。
这一边,无数勒索病毒通过 Flash 散播,让开发者觉得糟心。
另一边,国区的代理还在借 Flash 搞骚操作,悄悄吞噬系统资源、增加耗电,用狂轰滥炸似的广告弹窗,让用户感到恶心和厌烦。
而且它本身只是一个多媒体程序的播放插件,后期却像个软件一样,承载了太多的功能:解码编码 H.264、进行 3D 渲染、播放 7.1 声道环绕声、支持游戏手柄,逐渐变得低效又臃肿。
看个视频,可能就连带着把浏览器整崩溃了:
这些弊端,让互联网上长期存在着一股反 Flash 的力量,甚至有个 “ 占领 Flash ” 的运动,誓要「 让全世界的桌面浏览器都卸载 Flash Player 插件 」。
至于不开放,则似乎是它致命的弱点,也从一开始,就奠定了 Flash 凉凉的基调。
作为一款专利性产品,如果其他公司要使用 Flash 技术,就必须向 Adobe 支付费用。举例来说,如果苹果的用户想要在手机的网页上看视频,苹果就要给 Adobe 钱了。
然而没有哪个公司,想要依赖于一个自己控制不了的独立技术,所以他们肯定会想办法扼杀 Flash,并积极推动免费且开放的产品来取代它。
对比之下,新生儿 HTML5 虽然也同样不能避免 Flash 的某些弊端,但作为一种开放的网络标准,它属于所有人。
可能也正因如此,微软、苹果、Google 对此都举双手支持。
2014 年万维网联盟完成 HTML5 的标准制定后,H5 加速发展,已经所向披靡。现在每年年底刷屏的支付宝年账单,采用的就是 H5 技术 ↓ ↓
曾经的 Flash 天堂 4399,如今也充斥着各类 H5 小游戏 ↓ ↓
后浪已经势不可挡了,所以能熬到今天的 Flash,其实早已算是长寿。
然而在那么多人欢送 Flash 的同时,还是有人放不下 Flash,高呼自己的青春结束了。
毕竟,在拨号上网的 Web1.0 时代,Flash 可是神一般的存在啊。
当时由于带宽网速的限制,HTML 里只有土土的文字和排版,要想看高清的图片、GIF 或者视频,真就是烧钱也未必能做到。
Flash 此时出现,算是另辟蹊径解决了网速的问题:它的图片和动画都是基于矢量存储的。
而矢量图的生成可以通过 CPU 做到,并且放大缩小也没有失真的问题,所以只需要几十 KB 到几百 KB ,就能轻松实现别人需要 MB 的图片。
2005 年 Flash 还增加了边下边播的功能,在文件刚下载时,用户就能点开看视频。
而且它的压缩算法,让视频不用缓冲就能秒看,当时土豆、优酷等各大视频播放网站,用的都是 Flash插件,这时候的 Flash 基本就是默认的 “ 行业标准 ”。
也许上面这些革新你都未曾察觉,但你一定玩过借助 Flash开发出的,像是《 黄金矿工 》、《 森林冰火人 》、《 死神 vs 火影 》这样,陪伴了一代人童年的小游戏。
它们不用繁琐的下载安装,只要点击打开网页就能秒玩,往往一玩就是一整天,停也停不下来。
除了这些之外,Flash 让人念念不忘的另一个理由,还因为它作为一款软件,不仅留下过作品,也曾创造过一种文化。
1997 年它进入中国,让无数业余爱好者开始对创作感兴趣。因为 Flash 的技术门槛和开发成本都很低,只需要懂一些简单的动画就可以了。再加上一点代码,就可以做出具有交互效果的动画或者游戏。
短短两年,就有大量的开发者聚集在 Flash 论坛里,兴高采烈地讨论着各种点子的开发和实现。当时,有人无意中提出了 “ 闪客 ” 的概念,立刻击中了当时的 “ 大 V ” 边城浪子。
后来他受此启发,创立了闪客帝国,给了国内的 Flash 创作者一方净土,也极大地推动了原创动画在国内的传播与发展。
研究者描述闪客时说:
每当夜幕降临,他们选择了 “ 闪光 ”,用一种叫 Flash 的软件,把隐藏在心里那些若隐若现的感觉做成动画,也许是段 MTV,也许是一段伤感的故事,也许仅仅是一个幽默。这些作品传播到网上,博得大家开怀一笑,或是赚取几滴眼泪。日复一日,乐此不疲。
何其浪漫,何其热忱啊。
然而,公司里 98 年出生的同事对当年的这些词汇一无所知。也许十几年后,刚出生的孩子们,也会同样对 Flash 一无所知。
或许,互联网一直就是这样,不完美的技术总会被革新和淘汰。
而最后留下的,是一些更棒的技术,一声轻轻的叹息,还有那一份刻在一代人脑海中、永不磨灭的闪光回忆,如此足矣。
发生重大哀悼事件时候,需要紧急将网站变灰以示哀悼,在此虫虫给大家总结了几种方法,通过简单修改一下站点样式即可实现。
另外主要方便快捷的方法是使用CSS样式的grayscale()方法。
grayscale() : 对图片进行灰度转换,grayscale是 <filter-function> 的子属性,当100%参数时候的效果如下:
最简单地把页面的<html>开始标签中间之间加:
style="-webkit-filter: grayscale(100%);"
或者修改站点CSS样式
html {-webkit-filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(graysale=1);}
将上述代码添加加到CSS最顶端就可以实现。
为了兼容多种浏览器标准,可以增加一下样式:
html {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
_filter:none;
}
如果网站后台无法定义CSS样式,这需要在站点模板页的head标签中间插入style标志位:
<style>
html{-webkit-filter: grayscale(100%);}
</style>
对于一些老的网站,为了支持该函数需要修改html标头,将其修改为最新标准标头才可以:对一些使用Flash(不在建议使用)的老站点,起颜色可能也不支持CSS滤镜变灰,则需要在可以在FLASH代码的<object …>和之间插入:
<param value="false" name="menu"/>
<param value="opaque" name="wmode"/>
对于一下没有办法修改源站代码的情况下,也可以在Nginx站点代理无服务器上,通过sub_filter指令来实现。
受限确保nginx支持http_sub_module模块,如果不支持需要重新编译安装Nginx,自爱安装时候添加build参数—with-http_sub_module
然后在Nginx的http模块增加如下代码:
sub_filter '</head>' '<style type="text/css">html{ -webkit-filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}</style>';sub_filter_once on;
然后nginx -t测试配置正常无误
nginx -s reload 重启nginx即可
*请认真填写需求信息,我们会在24小时内与您取得联系。