Ruffle 四种运行方式总览:桌面版、扩展、嵌入、命令行
为什么有四种?
因为不同人想做的事完全不一样。如果你只关心「在自己电脑上玩老 Flash 小游戏」,那跟网站站长关心的事差了十万八千里——所以 Ruffle 把运行时拆成了四条线,你按需取。
先看一张对比表:
| 用法 | 谁适合 | 怎么装 | 优点 | 局限 |
|---|---|---|---|---|
| 独立桌面版 | 本地 SWF 收藏、想离线玩 | GitHub Release 压缩包 | 原生窗口、显卡加速、命令行可控 | 只能本地,别人电脑上的浏览器不会自动获得 |
| 浏览器扩展 | 想继续访问老 Flash 网站 | 商店一键装 / 开发者模式手动 | 自动替换页面上的旧 Flash 标签、跨站通用 | 扩展本身也要在各浏览器商店上架,个别浏览器走开发者模式 |
| 网站嵌入 | 自己有 Flash 老站点要救活 | 一行 <script> CDN | 访客零安装、直接获得 Flash 能力 | 需要改动站点代码、对 CORS/HTTPS 有要求 |
| 命令行/Headless | 自动化、批处理、截帧 | 桌面版自带 + Exporter / Scanner | 无 UI,能在 CI 里跑 | 需要自己写脚本 |
方式一:独立桌面版
你有一堆老 .swf 文件想玩——可能是当初从 Miniclip、Newgrounds、 Armor Games 下的,也可能是自己以前的作品。直接双击 ruffle.exe 就能打开窗口,菜单里选「打开文件」或者把 SWF 拖进窗口。
桌面版还支持输入一个 URL 远程加载 SWF,这对测试线上内容特别有用。如果你传 --verbose 参数,它会在控制台打出详细日志,帮你定位具体卡在哪个 ActionScript 调用上。
方式二:浏览器扩展
你不改网站、不想装独立程序,只想继续在浏览器里逛那些还挂着 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"> 标签的老网站——扩展就是为你做的。
扩展检测到页面上有旧 Flash 标签,就偷偷把它从 DOM 里拿掉、换成 Ruffle 的 <canvas>。Chrome / Edge 直接在商店装,Firefox 也有官方 Add-On。Safari 因为苹果的扩展机制,需要手动加载,步骤稍微繁琐一点。
方式三:网站嵌入
站长最该看这个。你自己的网站有一些 Flash 组件(老 Banner、小游戏、互动表单),不想让访客看到「请安装 Adobe Flash Player」那种死链提示,就把 Ruffle 嵌进来。最简单的一行:
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
CDN 版会自动 polyfill 页面上的旧 <object> / <embed> / <script> 标签,访客零配置直接获得 Flash 能力。你也可以下载自托管版本放在自己服务器上,版本可控。
方式四:命令行 / Headless
如果你有几百个 SWF 想批量扫描、想在 CI 里截图做兼容性回归、想在服务器上跑而不弹 UI,Ruffle 仓库里单独提供了 Scanner 和 Exporter 两个小工具。它们不依赖窗口系统,能 headless 跑。这一条主要面向进阶用户。
选哪条路?
简单决策:
- 有自己的 SWF 文件 → 独立桌面版
- 想继续访问别人没改的老网站 → 浏览器扩展
- 自己是站长、想救活自己的 Flash 老站点 → 网站嵌入
- 想自动化批处理 → 命令行工具