# 把 Flash 游戏移植到 HTML5

> Flash 插件在任何现代浏览器里都不再运行。HTML5 是替代的运行时，走到那里要么重建，要么模拟。

- URL: https://www.summerengine.com/zh/port-flash-game-to-html5
- Keyword: 移植 Flash 游戏到 HTML5
- Related: https://www.summerengine.com/zh/porting

把 Flash 游戏移植到 HTML5，意思是为一个仍然存在的浏览器运行时重建一款你拥有的游戏，因为 Adobe 已于 2020 年 12 月 31 日停止 Flash Player，浏览器也彻底移除了插件支持。

有两条诚实的路。模拟，比如用 Ruffle 这类项目，通过 WebAssembly 在浏览器里运行原始 SWF，对保存和存档来说这是正确答案。重建则是在现代引擎里重新制作这款游戏，让你获得触摸支持、宽屏、存档、更新能力，以及日后把同一款游戏发到桌面和移动商店的可能。

先弄清 Summer Engine 能做什么。用 GDScript 编写的 Summer 重建版可以导出网页版本，你把它发布到 Summer Games，它也可以以桌面版本发布到 Steam 或作为 itch.io 下载。如果你需要在浏览器中运行一模一样的原版，用 Ruffle 模拟运行你自己的 SWF 是可行的路线，而且值得尽早用它测试你的游戏，因为它对部分作品的 ActionScript 3 支持仍不完整。

## 模拟还是重建，怎么选

当目标是为玩家或档案保存原汁原味的原版，并且你接受只有鼠标键盘、固定舞台尺寸、也没有更新时，选模拟。当你想要触摸、宽屏与自适应布局、真正的存档、分析、变现，或者在 Steam 或应用商店发行时，选重建。用 Summer 重建的游戏可以作为网页版本发布到 Summer Games，也可以作为桌面版本发布。重建还能修好原作里那些只因为人人都用桌面鼠标才成立的部分。

## 从你自己的 SWF 里找回资源

如果 FLA 还在就从它开始，把矢量元件导出成 SVG 或高分辨率 PNG，音频导出成 OGG。没有 FLA 时，提取工具能从你自己的 SWF 里拉出内嵌位图和声音，反编译器也能还原 ActionScript 供你参考。把所有矢量动画重建成精灵表或骨骼动画。只对你制作的、或持有明确重制许可的游戏这么做。

## 会改变设计的网页运行时约束

浏览器在第一次用户交互之前会拦住音频，所以要加一个点击开始的界面。没有文件系统，所以存档写进浏览器存储，而且可能被用户清掉。下载体积直接决定有没有人愿意等，所以要压缩贴图和音频，能流式加载的就流式加载。移动浏览器内存限制很紧，也没有键盘。标签页切到后台时暂停，并用时间增量而不是帧计数来应对浮动的帧率。

## HTML5 游戏如今在哪里生存

门户时代随插件一起结束了，但网页分发没有。itch.io 直接托管 HTML5 版本，限制为总大小 500 MB、单个文件 200 MB、最多 1000 个文件。Newgrounds 仍然能跑游戏。网页游戏发行商和聚合站会授权 HTML5 作品，按流量或分成付费。你也可以自建域名托管，单线程版本不需要特殊响应头，多线程版本则需要跨源隔离响应头。用 Summer 重建的游戏以 Summer Games 上的网页版本，或 itch.io、Steam 上的桌面下载的形式触达玩家。

## FAQ

### SWF 能自动转换成 HTML5 吗？

没法可靠地转。自动转换器能处理简单动画，但在 ActionScript 逻辑上会垮掉。两条靠得住的选择是：用 Ruffle 这类 WebAssembly 播放器模拟 SWF，或者在现代引擎里重建这款游戏。

### Flash 为什么不能用了？

Adobe 在 2020 年 12 月 31 日结束了 Flash Player 支持，并从 2021 年 1 月起开始阻止内容运行。浏览器移除了它依赖的插件架构，所以没有现代浏览器能原生运行 SWF。

### 网页构建能用 C# 吗？

用 C# 做不到。Godot 4 无法把 C# 项目导出到网页，这一点在 Summer 中同样成立。在 Summer 中，GDScript 项目可以导出网页版本，你把它发布到 Summer Games。C# 可在桌面编辑器中用于制作桌面版本。

### 重建后的游戏能在手机上跑吗？

只要你为此做设计就能。加上触摸操作、自适应布局，以及更低的内存和下载预算。Flash 游戏默认有鼠标，所以触摸是一次设计改动，不是重新映射。

### 重建后的游戏能发到浏览器之外吗？

能。用 Summer 重建的游戏以桌面版本发布到 Steam 和 itch.io，移动版本需要各平台的工具链和签名。用 GDScript 重建的游戏还可以作为网页版本发布到 Summer Games。

[开始重建](https://www.summerengine.com/zh/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api