为什么 Ruffle 比 Adob​​e 更好地播放此 SWF 文件?

Why Does Ruffle Play This SWF File Better Than Adobe?

我正在帮助我的老师修复她网络任务中的一些 link,这两个任务都涉及 Flash。然而,有一个 link 让我很困扰。 link - a BBC interactive - works partially in the Ruffle Flash Player but almost not at all in the official Flash Player. In Ruffle, only the Home and Organs sections work correctly, but the Muscles section is what needed, while in the official Flash Player (both through a link and the downloaded file),仅加载菜单,选择一个部分会加载白屏。在调试播放器中 运行 时,没有错误显示。为什么 Ruffle Flash Player 比官方播放器播放效果更好? 而且,更重要的是,我该如何完全修复它,或者至少修复肌肉部分?我有 Adob​​e Creative Cloud 并下载了 Adob​​e Animate,但 .swf 文件无法在 Animate 中打开。

由于问题的第二部分在 10 天后仍未得到答复,因此我将其从 post 中删除。如果我有时间并且仍然需要答案,我可能会在将来的某个时候为它制作一个新的post。

虽然我对你的问题没有准确明确的答案,但作为一个接触这项技术近 20 年的 Flash-ninja,我将分享一些见解作为将阐明技术上的细微差别,唉,这远远超出了评论限制。

  1. 为什么Ruffle Flash Player播放的比官方的好?

Flash 应用程序以 SWF 文件的形式出现,其中也可能有一些外部额外内容可供下载(文本、二进制文件、图像以及其他 SWF 模块)。有多种因素可能导致应用程序无法使用。

为什么下载 SWF 可能会失败:

  • 您下载了主文件,但没有下载附加文件(个人认为这是原因)。
  • 应用程序被 URL 锁定。
  • 应用程序有一个它无法访问的服务器后端,因为它试图通过亲戚访问它 URL.
  • 应用程序有一个它无法访问的服务器后端,因为它是使用 local-with-files 安全性发布的,这与通过 HTTP[= 无关紧要65=] 但如果您 运行 本地应用程序很重要。

为什么 SWF by URL 可能会失败:

  • Flash 以一种非常奇怪的方式对待相对的 URLs:相对于当前 HTML 页。如果 SWF 与其所属的 HTML 在不同的文件夹中,则相对 URLs 可能会导致谁知道在哪里。
  • 应用程序有一个拒绝请求的服务器后端,因为 SWF 没有 HTML 页面没有有效会话.
  • 应用程序从其 HTML 页面获取其设置(或检查环境),在直接 SWF[=65 的情况下该页面不存在=] link.

那好吧。

  1. 更重要的是,我该如何完全修复它,或者至少修复肌肉部分?

根据上面的建议,尝试找出(以某种方式监视来自工作应用程序的请求)主文件的所有可下载附加内容并下载它们 — 然后下载的版本 可能 工作。

否则,由于 this,您无能为力。如您所见,Ruffle 还远未完全支持 FlashActionScript,一个不兼容的指令 —整个应用程序就失败了,并且会继续失败,直到 Ruffle 也覆盖了上述指令。