ITADN
ruffle-rs/ruffle
ruffle-rs/ruffle · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Ruffle

Rust Build Status Web Build Status Ruffle Flathub Ruffle npm Ruffle AUR Ruffle Discord Ruffle translations
网站 | 演示 | 每日构建 | 维基

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.swf
  • cargo 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 的钻石级赞助商:

Newgrounds.com CPMStar Sébastien Bénard Crazy Games Cool Math Games The New York Times Armor Games Onda Educa TwoPlayerGames.org wowgame.jp Matt Roszak Doll Divine Movavi Kongregate Bubble Shooter Neopets

许可证

Ruffle 采用以下任一许可证授权:

由您选择。

Ruffle 依赖于采用兼容许可证的第三方库。有关完整信息,请参阅 LICENSE.md

贡献

Ruffle 欢迎所有人的贡献。有关入门帮助,请参阅 CONTRIBUTING.md

除非您明确另有说明,否则您有意提交以纳入本作品的任何贡献,均按上述双重许可授权,且无任何 附加条款或条件。

整个 Ruffle 社区,包括聊天室和 GitHub 项目,均须遵守 Rust 项目本身所遵循的 行为准则