当前位置:首页 > 见闻随笔

Flash 你还记得它吗

如果你在 2010 年前上网冲过浪,一定记得那个画面:打开网页游戏、看在线视频之前,总要先等一个红色的"f"图标加载半天。那就是 Flash,一个曾经统治整个互联网、后来又迅速消亡的技术。2020 年 12 月 31 日,Adobe 正式停止了对 Flash Player 的一切支持,各大浏览器也相继移除了它的运行环境。一个时代就此落幕。

回头看 Flash 从巅峰到消亡的过程,其实是理解现代网页技术的一把最好的钥匙。搞懂了 Flash 为什么被淘汰,你就能明白今天的网页为什么长成这个样子。

一、它曾经统治过整个互联网

Flash 的前身是 FutureSplash Animator,1996 年被 Macromedia 收购后改名 Flash。它的核心卖点在当时是革命性的:用矢量图形做动画,文件小、放大不失真,还能加入交互和脚本逻辑。

在拨号上网和早期宽带的年代,"文件小"就是生命线。一段几十 KB 的 Flash 动画,效果却能做到传统 GIF 和网页元素做不到的丝滑程度。于是整个互联网的内容形态被 Flash 重塑了:

  • 动画与短剧:《小小作品》、闪客帝国的动画,是第一代网民的共同记忆;

  • 网页游戏:4399、7k7k 这类游戏站几乎全部由 Flash 构建,《开心农场》让"偷菜"成了全民行为;

  • 在线视频:YouTube 早期的播放器就是 Flash,国内的视频网站也无一例外;

  • 整站建设:大量企业官网用 Flash 做成炫酷的"开场动画 + 场景切换",2000 年代中期几乎是大厂标配。

巅峰时期的 Flash Player 覆盖了 99% 的联网电脑。说它是一个时代的"互联网运行时",毫不夸张。

二、压垮它的四根稻草

技术产品的死亡很少是单一原因,Flash 是典型的"多方合围"。

第一根稻草:性能与耗电。 Flash Player 是一个独立于浏览器的插件,运行在浏览器进程之外。它无法充分利用系统硬件加速,播放一段普通的视频就可能让 CPU 占用飙升、笔记本风扇狂转。2010 年前后笔记本开始普及,"装了 Flash,电池少一半"成了用户最直观的抱怨。插件里的视频解码、动画渲染效率,和浏览器原生能力相比毫无优势。

第二根稻草:移动时代的缺席。 2007 年 iPhone 发布,智能手机时代拉开帷幕。乔布斯在 2010 年发表了那封著名的公开信《关于 Flash 的思考》,系统性地批评了 Flash 的封闭性、安全性、性能和耗电问题,并宣布 iOS 不支持 Flash。移动端是 Flash 的天然软肋——它为鼠标键盘设计,触屏交互从架构上就无法良好支持,在手机上的耗电和发热更是灾难性的。而移动互联网的增速,远远快过了 Flash 自救的速度。

第三根稻草:安全的重灾区。 Flash 的脚本能力和文件解析极其复杂,漏洞常年高发,是黑客眼中的"最佳跳板"——一个恶意 SWF 文件藏在网页里,访问即中招,而且插件权限体系远不如浏览器沙箱严格。"零日漏洞"这个词在 2010 年代的 Flash 身上几乎成了常态,Adobe 的补丁永远在追赶攻击者。

第四根稻草:开放标准的崛起。 这是压轴的一击。Flash 解决的那些需求——动画、视频、交互、游戏——HTML5 全都给出了原生方案:<video> 标签干掉了视频插件,Canvas 让网页可以直接作画,CSS3 动画和 JS 动画库接管了交互动效,WebGL 打开了 3D 的大门。当浏览器原生能力足够强大时,一个需要单独安装、单独更新、单独打补丁的插件,存在的理由就只剩下历史包袱了。

2015 年以后,Chrome 逐步默认禁用 Flash、标记插件为"过时",YouTube、Facebook 相继切换到 HTML5,国内视频网站也在 2017 年前后完成切换。到 2020 年正式停服时,Flash 其实早已名存实亡——停服只是一个迟到的官宣。

三、今天的我们用什么替代它

Flash 留下的每一类内容,今天都有了对应的现代方案,而且几乎在所有维度上都更强:

动画与动效,从 Flash 时间轴变成了 CSS 动画和 JavaScript 动画库。简单的过渡、位移用 CSS 几行代码搞定;复杂动画有 GSAP、Lottie(设计师在 AE 里做动画,导出 JSON 直接在网页播放)这类成熟工具。矢量动画能力没有消失,只是换了更开放的形式。

网页游戏,从 Flash SWF 变成了 Canvas 和 WebGL。2D 游戏有 Phaser 这样的引擎,3D 游戏有 Three.js、Babylon.js;性能要求极致的场景还有 WebAssembly,可以把 C++ 编译成接近原生的速度跑在浏览器里。当年 4399 上的那些小游戏,如今在微信小游戏、H5 游戏平台上以新的形态重生——而支撑它们的正是这套标准化的技术栈。

在线视频,从 Flash 播放器变成了原生 <video> 标签加 MSE(Media Source Extensions)。现在的直播、弹幕、自适应码率,全部建立在浏览器原生能力之上,性能、安全和耗电都不可同日而语。

富交互应用,从 Flash 全站变成了单页应用框架(React、Vue 等)加上成熟的 CSS 布局体系。当年用 Flash 做的炫酷企业官网,如今用标准的 HTML/CSS/JS 就能实现,还能被搜索引擎正常抓取——这也是 Flash 时代整站的一个死穴:搜索引擎根本看不懂 SWF 里的内容。

四、这段历史对站长的启示

如果你正在做自己的网站,Flash 的兴亡至少有三个教训值得记住。

第一,押注开放标准,而不是私有技术。 私有技术再辉煌,命运都攥在一家公司手里;开放标准(HTML/CSS/JS)由整个行业共同维护,二十年不倒。做网站时优先使用标准能力,慎用依赖单一厂商的方案。

第二,性能就是体验,耗电就是用户。 Flash 之死表面上是"不支持",本质上是它让用户的电脑变卡、变烫。今天评估一个主题、一个特效、一个第三方脚本时,也该问同样的问题:它让页面变重了多少?手机上流畅吗?

第三,跟随终端的变化。 Flash 输给了移动互联网,不是输给了某项具体技术。今天做网站,移动端体验依然应该是第一优先级——流量在哪里,技术的生命力就在哪里。

互联网没有永恒的统治者,只有不断被用户用脚投票的标准。Flash 的故事讲完了,而同样的问题,每一代技术都还要重新回答一遍。


文章内容末附加展示内容,可以是联系方式、重要说明等统一特定信息……

相关文章

别让噱头伪装成创新,功能该兼顾安全底线

曾经我们一直被要求要创新,这世上确实有些聪明人,换个马甲就算创新。在汽车上面可以看到很多,噱头式伪创新现象。不知从何时起,创新渐渐变了味道。创新的不是产品,而是卖点:实体按键换成触控面板,就是所谓的科…