Ruffle
Ruffle 是一个使用 Rust 编程语言编写的 Adobe Flash Player 模拟器。Ruffle 使用 WebAssembly 同时支持桌面端和 Web 端。
目录
项目状态
Ruffle 对 ActionScript 1、2 和 3 的支持相当完善,但远未结束。请在 问题跟踪器 中报告任何问题。
使用 Ruffle
体验 Ruffle 最简单的方法是访问 网页演示页面,然后点击“选择文件”按钮加载您选择的 SWF 文件。
Ruffle 的 Nightly 构建 可用于桌面和 Web 平台。
如需更详细的说明,请参阅我们的 Wiki 页面。
从源码构建
先决条件
- Rust 的最新稳定通道
- Java,在您的 PATH 中可用
java(用于构建包含 ActionScript 3 内置 Flash 类的库)
Linux 先决条件
以下是 Linux 的典型依赖项:
-
Ubuntu/Debian:
sudo apt install pkg-config libasound2-dev libudev-dev libfontconfig-dev libssl-dev default-jre-headless g++ -
Fedora/RHEL:
sudo dnf install pkgconf-pkg-config alsa-lib-devel systemd-devel fontconfig-devel openssl-devel java-latest-openjdk-headless gcc-c++
桌面端
构建
使用以下命令构建并运行桌面应用:
cargo run --release --package=ruffle_desktop
要运行特定的 SWF 文件,请将 SWF 路径作为参数传入:
cargo run --release --package=ruffle_desktop -- test.swf
要在调试模式下构建,只需从命令中省略 --release。
macOS
Ruffle 桌面版可以从我们的 Homebrew Tap 构建:
brew install --HEAD ruffle-rs/ruffle/ruffle
注意:由于它仅针对 HEAD,每次想要更新时都需要运行 brew upgrade --fetch-HEAD ruffle。
Web 或扩展
请遵循 web 目录中的说明 来构建 Ruffle 的 web 或浏览器扩展版本。
本项目使用 BrowserStack 进行测试。
Android
请遵循 ruffle-android 项目中的 说明 来构建 Ruffle 的 Android 应用程序。
扫描器
如果您有一批“真实世界”的 SWF 文件用于测试,可以使用扫描器来 基准测试 ruffle 的解析能力。给定一个文件夹和一个输出文件名,它将尝试读取 所有 Flash 文件并报告该任务的成功情况。
cargo run --release --package=ruffle_scanner -- scan folder/with/swfs/ results.csv
Exporter
如果您有一个 SWF 文件并希望捕获其图像,您可以使用 exporter 工具。 这目前需要硬件加速,但可以以无头模式(无窗口)运行。
cargo run --release --package=exporter -- path/to/file.swfcargo run --release --package=exporter -- path/to/file.swf path/to/screenshots --frames 5
结构
core- 核心模拟器与通用代码swf- SWF 和 ActionScript 解析器desktop- 桌面客户端(使用wgpu-rs)web- Web 客户端和浏览器扩展(使用wasm-bindgen)render- 适用于桌面和 Web 的各种渲染后端video- 视频解码后端flv- Flash Video 解码器wstr- 兼容 Flash 的字符串实现scanner- 批量解析 SWF 文件的实用工具exporter- 生成 SWF 文件 PNG 截图的实用工具
赞助商
您可以通过 GitHub Sponsors 支持 Ruffle 的开发。您的赞助将有助于确保未来 Flash 内容的可访问性。谢谢!
衷心感谢 Ruffle 的钻石级赞助商:
许可证
Ruffle 采用以下任一许可证授权:
- Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (http://opensource.org/licenses/MIT)
由您选择。
Ruffle 依赖于采用兼容许可证的第三方库。有关完整信息,请参阅 LICENSE.md。
贡献
Ruffle 欢迎所有人的贡献。有关入门帮助,请参阅 CONTRIBUTING.md。
除非您明确另有说明,否则您有意提交以纳入本作品的任何贡献,均按上述双重许可授权,且无任何 附加条款或条件。
整个 Ruffle 社区,包括聊天室和 GitHub 项目,均须遵守 Rust 项目本身所遵循的 行为准则。













