Adobe Flash Player 的时代已经落幕,但那些基于 Flash 制作的精彩内容——无论是游戏、动画还是互动应用——并没有随之消失。随着 Flash Player 在 2020 年底停止支持,并被现代浏览器移除,许多承载着回忆和价值的 Flash 内容一度变得无法访问。这时候,一个重要的工具出现了,它就是【ruffle插件】。

【ruffle插件】—— 是什么?

【ruffle插件】本质上是一个
Adobe Flash Player 模拟器。它不是 Adobe 开发的 Flash Player 本身,而是一个
全新的、开源的项目,旨在替代已停止服务的 Flash Player,让用户在现代网页浏览器中重新访问和体验那些使用 Flash 技术创建的旧内容。

简单来说,当你在一个网页上遇到一个旧的 Flash 文件(通常以 .swf 结尾)时,如果没有安装 Ruffle,浏览器会提示 Flash 不可用或无法加载。而安装了 Ruffle 后,它就能
识别这些 .swf 文件,并在浏览器内部
模拟 Flash 运行环境来播放它们。

Ruffle 主要利用
WebAssembly(简称 Wasm)技术和
Rust 编程语言构建,这使得它能够在现代浏览器中安全、高效地运行。它提供多种使用形式,其中最常见和方便的就是
浏览器扩展(即插件),让普通用户无需复杂操作就能让旧的 Flash 内容重新显示。

为什么选择【ruffle插件】?

选择使用【ruffle插件】的主要原因在于:

  1. Flash 时代的终结: Adobe 在 2020 年停止了对 Flash Player 的支持,主流浏览器也随之移除了对它的原生支持。这意味着如果没有 Ruffle,大量依赖 Flash 的老网站、游戏和动画就无法再正常显示和使用了。
  2. 内容的可访问性: 许多经典的网页游戏、教育内容、创意动画和早期网站都使用了 Flash。Ruffle 让这些内容得以
    重新焕发活力,让用户能够重温和体验这些数字遗产,保护了这些重要的数字文化资产。
  3. 安全性: 旧版本的 Flash Player 存在已知的安全漏洞,且不再接收更新。长期使用未受支持的旧版本 Flash Player 存在风险。而 Ruffle 是从零开始构建的,利用现代 Web 技术和
    内存安全的 Rust 语言,通常比运行老旧、不受支持的 Flash Player 更安全。它运行在浏览器的沙箱环境中,降低了潜在的威胁。
  4. 便捷性: 作为浏览器插件安装后,Ruffle 通常能
    自动检测并替代网页上的 Flash 内容,用户无需进行复杂的配置或安装额外的老旧软件。这极大地简化了访问旧 Flash 内容的流程。
  5. 跨平台支持: Ruffle 基于 Web 标准和现代技术构建,可以在支持 WebAssembly 的几乎所有现代浏览器和操作系统上运行,提供了良好的兼容性。

简而言之,Ruffle 是在 Flash 退役后,继续访问和体验海量 Flash 内容的
最安全、最便捷 的解决方案。

在哪里获取【ruffle插件】?

获取【ruffle插件】主要有以下几种途径:

  • 官方网站: 访问 Ruffle 的官方网站
    https://ruffle.rs/
    在这里你可以找到关于项目的介绍、不同版本的下载链接以及安装指南。官方网站是获取 Ruffle 最可靠的来源。
  • 浏览器扩展商店:
    这是普通用户最常用和推荐的方式。你可以在你使用的浏览器的官方扩展或插件商店里搜索 “Ruffle” 并安装。通过官方商店安装可以确保你获取的是经过浏览器厂商审核的版本,且能方便地接收更新。

    • Chrome 用户可以在 Chrome Web Store 找到官方发布的 Ruffle 扩展。
    • Firefox 用户可以在 Firefox Add-ons 找到官方发布的 Ruffle 插件。
    • Microsoft Edge 用户可以在 Edge Add-ons 找到官方发布的 Ruffle 扩展。
    • Safari 用户也可以在 Safari Extension Gallery 或通过 Ruffle 官网找到安装方式。

    安装过程通常只需要点击“添加至 [你的浏览器名称]”按钮即可。

  • 为网站嵌入(开发者): 如果你是一个网站所有者或开发者,想让自己的网站上的 Flash 内容复活,可以从官方网站下载 Ruffle 的 Web 版本文件(通常是一个或几个 JavaScript 文件,如 ruffle.js),然后将其上传到你的服务器,并通过 HTML 代码嵌入到你的网页中。
  • GitHub 仓库: Ruffle 是一个开源项目,其源代码托管在 GitHub 上:
    https://github.com/ruffle-rs/ruffle
    高级用户或开发者可以从这里获取最新的开发版本、参与贡献或自行编译。但对于普通用户,建议通过官方网站或浏览器商店获取稳定版本。

请务必从
官方或官方指定的渠道(如浏览器商店)获取 Ruffle,以确保安全和可靠性。

使用【ruffle插件】需要花费多少?

这是一个非常简单的问题,答案是:
零费用。

【ruffle插件】是一个完全
免费 的工具。

它是一个
开源项目,由全球范围内的贡献者社区开发和维护。无论你是普通用户安装浏览器插件来播放 Flash 内容,还是网站开发者下载并嵌入 Ruffle 到你的网站上,都
不需要支付任何费用

项目的持续发展依赖于志愿者贡献他们的时间和技能,以及少量的社区捐赠来支持基础设施(如网站托管、测试服务器等)。但对于最终用户来说,获取、安装和使用 Ruffle 来浏览网页上的 Flash 内容是
完全没有经济成本的

你可以自由地安装、使用和分享 Ruffle,无需担心许可证费用或使用期限的问题。

如何使用【ruffle插件】?

使用【ruffle插件】的方法取决于你的身份和使用场景:

对于普通用户(使用浏览器插件):

这是最常见和最简单的使用方式。

  1. 安装插件: 根据你使用的浏览器,前往对应的官方扩展商店(Chrome Web Store, Firefox Add-ons, Edge Add-ons 等)搜索 “Ruffle” 并点击“添加”或“安装”按钮完成安装。安装通常只需几秒钟。
  2. 访问含有 Flash 内容的网页: 安装成功后,和平时一样访问一个包含 Flash 游戏、动画或其他 Flash 应用的网页。Ruffle 插件会在后台运行并监控页面内容。
  3. 自动识别与播放: Ruffle 插件会
    自动检测 页面上的 Flash 内容(通常是嵌入的 .swf 文件)。它会拦截浏览器对 Flash Player 的调用,并用自己的模拟器来处理。通常,你会看到一个 Ruffle 自己的播放区域取代了原本 Flash 内容的位置,上面可能显示一个播放按钮(通常是一个三角形图标)或加载提示。
  4. 点击播放(如果需要): 在某些情况下,为了更好的性能或用户控制,Ruffle 可能不会立即自动播放,而是在 Flash 区域显示一个播放按钮。点击这个按钮。Ruffle 就会开始加载并运行 Flash 内容。

大多数情况下,安装插件后访问页面,Ruffle 就会
无缝地自动工作,让那些原本无法显示的 Flash 内容“魔法般”地重新出现。你不需要进行额外的设置或配置。

对于网站所有者(嵌入 Ruffle 到自己的网站):

如果你拥有一个包含 Flash 内容的网站,并且希望用户访问时能够直接播放而无需他们自己安装浏览器插件,你可以选择将 Ruffle 嵌入到你的网站代码中。

  1. 下载 Ruffle Web 版本: 从 Ruffle 官网(https://ruffle.rs/)的下载页面获取最新的 Web 版本文件。通常你会找到一个或多个 JavaScript 文件,比如 ruffle.js
  2. 将文件上传到你的服务器: 把下载的文件上传到你的网站服务器上,放到一个可以通过你的网站 URL 访问到的位置(例如,一个名为 scriptsjs 的文件夹里)。
  3. 在你的网页中嵌入脚本: 打开你包含 Flash 内容的 HTML 文件。在 <head> 部分或在 <body> 结束标签 </body> 之前,添加一个 <script> 标签来引用你上传的 Ruffle 文件:

    <script src="/path/to/your/ruffle.js"></script>

    /path/to/your/ 替换为你上传 ruffle.js 文件的实际路径(这是一个相对于你网站根目录的路径)。

  4. Ruffle 自动工作: 一旦页面加载并执行了 Ruffle 脚本,它就会
    自动扫描 页面中的 HTML 标签(如 <object>, <embed>, <applet>,甚至是一些指向 .swf 文件的 <a> 标签),并尝试用 Ruffle 播放器替换或加载它们。

对于更复杂的嵌入或配置需求(例如,手动指定 Ruffle 应该处理哪些元素,或者配置特定 Flash 内容的加载参数),可以查阅 Ruffle 官方网站上更详细的开发者文档和 API 说明。这种嵌入方式确保了即使访问者没有安装 Ruffle 插件,他们也能在你的网站上正常看到 Flash 内容(前提是 Ruffle 对该内容有良好的兼容性)。

【ruffle插件】的工作原理是怎样的?

理解【ruffle插件】的工作原理有助于明白它为何能够替代 Flash Player,以及它的一些局限性。

【ruffle插件】的核心不是运行原有的 Adobe Flash Player 代码,而是通过
模拟和翻译 的方式来重现 Flash 内容的播放环境。

其主要工作原理环节包括:

  • 解析 SWF 文件: 当 Ruffle 识别到一个 .swf 文件(Flash 内容的载体)时,它会读取并解析这个文件的二进制结构。SWF 文件内部包含了 Flash 影片的所有信息,包括图形数据(矢量和位图)、音频、视频、ActionScript 代码、时间线信息、字体等等。Ruffle 需要理解这些数据的格式和含义。
  • 运行时模拟: Ruffle 用 Rust 语言编写了一个
    Flash 运行时的模拟器。这个模拟器并不执行 Flash Player 的原生指令,而是模拟 Flash 运行时的内部状态和逻辑。它知道如何处理 Flash 的显示列表(负责管理屏幕上的所有视觉元素及其层级、位置、变换等)、事件系统(鼠标点击、键盘输入、帧事件等)、网络请求等。
  • WebAssembly 作为高性能载体: Rust 代码被编译成
    WebAssembly (Wasm)。WebAssembly 是一种为 Web 设计的低级字节码格式,它可以被现代浏览器以接近原生应用的速度执行,同时运行在安全的浏览器沙箱环境中。这使得 Ruffle 的模拟器能够在浏览器内部快速、安全地运行,处理复杂的图形渲染和 ActionScript 执行。
  • 重现 Flash API: Flash 内容中的 ActionScript 代码通过调用 Flash Player 提供的各种 API 来控制影片的行为、与用户互动等。Ruffle 重建了 Flash 的各种 API(应用程序接口)。当 SWF 文件中的 ActionScript 代码尝试调用一个 Flash API 时(例如,绘制一个形状、播放一个声音、跳转到某个帧、发起一个网络请求),Ruffle 的模拟器会
    拦截 这些调用,并使用现代 Web 技术(如
    HTML5 Canvas API 绘制图形,
    Web Audio API 播放声音,浏览器的
    Fetch API
    XMLHttpRequest 发起网络请求)来执行相应的操作。
  • ActionScript 虚拟机: Ruffle 包含一个自己的
    ActionScript 虚拟机。它负责读取和执行 SWF 文件中包含的 ActionScript 代码(Flash 的脚本语言)。Ruffle 对 ActionScript 1 和 ActionScript 2 的兼容性相对较好,因为它们相对简单。而对更复杂、基于 ECMAScript 4 的 ActionScript 3.0 的支持仍在不断完善中。这也是为什么一些使用复杂 AS3 的大型 Flash 应用或游戏可能还不能在 Ruffle 中完美运行的原因。

总而言之,Ruffle 就像一个高级的“翻译官”和“表演者”:它读懂旧 Flash 文件的“剧本”(SWF 指令),然后用现代浏览器能理解的“语言”(WebAssembly)和技术(Canvas, Web Audio 等)将这个剧本“表演”出来,而不是直接运行 Flash 播放器这个“旧演员”。由于模拟和重现的复杂性,特别是一些 Flash 特定、浏览器没有直接对应的功能(例如某些底层硬件交互、特定的滤镜效果或外部扩展),Ruffle 的兼容性并非 100%,但对于大多数常见的 Flash 内容(尤其是早期游戏和动画),它已经能提供令人满意的体验。

通过这种模拟方式,Ruffle 避免了直接使用已不再安全和受支持的 Flash Player 软件,同时又成功地让大量经典的 Flash 内容在现代网络环境中得以重生。

ruffle插件