ruffle 中文文档 下载 App

已知 Ruffle 还不支持的 Flash 特性清单

说明

这份清单基于 ruffle.rs/compatibility 页面和 GitHub Issue Tracker 在 2026 年 10 月的最新数据。Ruffle 每周都有新提交,某些缺项可能在 nightly 版本里已经修了但还没进稳定版。跑之前可以下载 nightly 先试一下。

AVM 1 已知不支持(相对少)

特性影响现状
eval() 与某些动态代码执行少数老 Flash 游戏会用大部分 case 已实现,边界 case 还在修
TextFormat.font 中非系统字体自定义字体渲染Ruffle 用浏览器字体,TTF/OTF embed 还在做
某些冷门 flash.net API网络请求已实现常用的 URLRequest / URLLoader
attachVideo() 摄像头接入老 Flash 摄像头应用Ruffle 还没实现摄像头/麦克风接入

AVM 2 已知不支持(相对多)

特性影响替代方案
RTMP 流媒体在线 Flash 游戏的视频/音频流(经典例子是 Kongregate 的一些游戏)Flashpoint 或旧 Flash Player
原始 TCP/UDP Socketflash.net.Socket / DatagramSocket无,只能等 Ruffle 实现
FTE(Flash Text Engine) 高级排版精确的双向文字、竖排、复杂字符形简单文本够用,复杂排版等 PR
Loader.loadBytes() 动态加载 SWF某些游戏用它做插件系统等 nightly 跟进
Adobe AIR 特性(文件系统、原生窗口、移动 API)AIR 应用Ruffle 完全不覆盖 AIR,用 AIR SDK 或 Flashpoint
3D Stage3D 高级特性Context3D 的高级着色器(AGAL)基础 Stage3D 能跑,复杂着色器游戏不行
Pixel Bender 2Flash 的着色器语言还没实现,用了这个的 SWF 会报错
Camera / Microphone 接入Flash 摄像头 / 麦克风应用用现代浏览器的 getUserMedia API 自己写
LocalConnection多个 SWF 之间通信用 JS 作为中间桥接
Domain Memory(共享内存)跨 SWF 大对象共享还没实现

跨 AVM 都有的限制

怎么快速判断某个 SWF 会不会跑

在花时间排查之前,先用最简单的步骤试:

  1. 拖进 Ruffle 桌面版 → 能跑就完事了
  2. 如果白屏 / 报错 → 加 --verbose 看日志
  3. 如果日志里出现 Unimplemented ... → 对照上面的表和 GitHub Issue Tracker
  4. 如果只是跑不起来、没有 Unimplemented 字样 → 可能是别的原因(CORS、HTTPS、自动播放策略等),翻「常见问题排查」分组