iOS / Android 移动端上使用 Ruffle 的现状
移动端的 Flash 支持现状(一句话)
移动端没有原生 Flash Player,所有 Flash 内容都要靠 Ruffle WebAssembly 模拟器跑。Ruffle 对移动端的支持是「能用但不完美」——单指点击、简单动画能玩,但复杂手势、多点触控、全屏切换这些还在完善。
iOS(iPhone / iPad / macOS Safari)
Safari 上直接访问老 Flash 网站
装 Ruffle Safari 扩展(按本资料站「浏览器扩展 → Safari macOS」那节走),或者 Safari 15+ 里手动启用。扩展会自动替换页面上的旧 Flash 标签。
直接嵌在网站里的 Ruffle(站长视角)
访客的 iOS Safari 访问你的网页(嵌了 Ruffle CDN 版)→ 自动获得 Flash 能力,不用装扩展。这条路更稳。
iOS 上的限制
- 自动播放策略极严:iOS Safari 要求用户先点一下画布才能开始播放带声音的内容。
autoplay: true在 iOS 上无效 - 多点触控手势(Pan / Zoom / Rotate):Ruffle 对 Flash 的
TouchEvent和GestureEvent还没完整实现。Flash 游戏里需要双指缩放、旋转的那批,大概率跑不起来 - 全屏切换:
Stage.displayState = FULL_SCREEN在 iOS Safari 上被浏览器沙箱拦着——Flash 层想切全屏的调用会静默失败 - 性能:iOS 的 WASM 性能不如桌面 Chrome,但简单 AVM 1 内容够用
iPhone / iPad 上没有 Ruffle 独立 App
Ruffle 团队没做 iOS App Store 版本(开发资源 + 苹果审核政策双重原因)。唯一 iOS 路线是 Safari + 扩展 + 网站嵌入 JS。
Android
Android Chrome 上的路径
- 装 Ruffle 扩展:Chrome for Android 从 Chrome Web Store 能装
- 或者访问嵌了 Ruffle CDN 的网页,自动获得 Flash 能力
Android Chrome 比 iOS Safari 宽松一些:
- 自动播放策略:单指点击即可解禁声音,iOS 上更严
- 多点触控同样不完整,但 Android Chrome 的 WASM 性能比 iOS Safari 好一点
- 没有全屏切换限制(Chrome for Android 的全屏 API 工作)
Android 独立版?
Ruffle 仓库 ruffle-android 是一个独立子项目,能编译出 .apk 在 Android 上直接打开 SWF。但目前还没正式发布到 Play Store,你需要自己从源码构建,或者从项目 releases 找 nightly。
鸿蒙 / 其他 Linux 手机
本质上都是 Linux + Chromium / Firefox for Android 的变体——走 Android Chrome 那条路就行。
移动端 Flash 存档的最佳体验
想在手机上玩老 Flash 内容,目前可行的路径排序:
- 找已经嵌了 Ruffle CDN 的 Flash 归档网站(比如 Internet Archive 上越来越多的 Flash 存档已经迁到 Ruffle)——直接手机浏览器打开,最省事
- 自己的 Flash 老站点嵌入 Ruffle 一行 CDN——访客手机直接用,不用装任何东西
- Flashpoint 目前没有移动端版本——Flashpoint 只支持桌面 OS
性能预期
| 场景 | 能期待的体验 |
|---|---|
| 简单 AVM 1 Flash 动画 / 小游戏 | 流畅,基本可用 |
| 中型 AS3 游戏(不需要 RTMP) | 能跑,但帧率可能比桌面低 |
| RTMP 在线 Flash 游戏 | 跑不起来,Ruffle 不支持 RTMP |
| Adobe AIR 应用 | 完全不覆盖,Flashpoint Ultimate 也只在桌面 |