ruffle 中文文档 下载 App

AVM 1 兼容性(AS1 / AS2):绝大多数老 Flash 内容能直接跑

AVM 1 是什么

所有在 Flash Player 9(2006 年 6 月发布)之前开发的 Flash 内容,以及 2006–2013 年之间虽然也能用 AS2 写但作者还没迁到 AS3 的项目——全部跑在 AVM 1(ActionScript Virtual Machine 1)上。

Flash Professional CC(2013 年版)之后 Adobe 强制 AS3,所以最后一批 AVM 1 内容大约出现在 2013 年。那之前十几年间海量的小游戏、贺卡、Banner、互动教学内容,绝大多数都是 AVM 1。

官方数据

维度进度
Language(语言本身)~99%
API(内置类 / 方法)~82%

这个数字来自 ruffle.rs/compatibility 页面,2026 年 10 月官方最新数据。Language 方面基本上 AVM 1 的所有语法(变量、函数、原型链、with 语句、eval 等)都已经实现。

哪些 AVM 1 内容最稳

已知的 AVM 1 图形不准

官方承认有一些图形渲染上的细微差异,主要集中在:

这些差异绝大多数肉眼不明显,除非你在做像素级截图比对或者非常精确的音频同步。

AVM 1 里有哪些 Ruffle 还没实现的 API

完整列表在 GitHub Issue Tracker 里(issue #310)。主要是:

如果你跑一个老 Flash 程序,Console 里出现 Ruffle: Unimplemented ... 或者弹出一个对话框说某个 API 不支持——对照 Issue Tracker 看一下是不是已知问题、有没有人已经在修。

跟 Flashpoint 的关系

Flashpoint 项目为了做完整归档,对 AVM 1 也会用。但 Flashpoint 的主要武器是带着旧版 Flash Player 跑(靠 Wine / 虚拟机兼容),而 Ruffle 是完全重写的。如果你不需要精确到像素级的完美复刻、只想能玩就行,Ruffle 独立版更轻更快,不需要虚拟机。