【问题标题】:为什么 Ruffle 播放这个 SWF 文件比 Adob​​e 好?
【发布时间】:2021-12-24 10:15:05
【问题描述】:

我正在帮助我的老师修复她的网络任务中的一些链接,这两个链接都涉及 Flash。但是,有一个链接让我感到困扰。链接 - a BBC interactive - 在Ruffle Flash Player 中部分有效,但在official Flash Player 中几乎完全无效。在 Ruffle 中,只有 Home 和 Organs 部分可以正常工作,但 Muscles 部分是需要的,而在官方 Flash Player (both through a link and the downloaded file) 中,仅加载菜单,选择部分会加载白屏。在调试播放器中运行时,不会出现错误。为什么 Ruffle Flash Player 播放效果比官方好? 而且,更重要的是,我该如何完全修复它,或者至少是肌肉部分?我有 Adob​​e Creative Cloud 并下载了 Adob​​e Animate,但 .swf 文件无法在 Animate 中打开。

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

【问题讨论】:

    标签: flash ruffle


    【解决方案1】:

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

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

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

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

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

    为什么 URLSWF 可能会失败:

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

    那好吧。

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

    根据上面的建议,尝试计算(以某种方式监控来自工作应用程序的请求)所有可下载的添加到主文件并下载它们 - 然后下载的版本可能工作。

    否则,由于this,您无能为力。如您所见,Ruffle 还远未完全支持 FlashActionScript,这是一条不兼容的指令 - 整个应用程序只是失败并会继续在 Ruffle 也涵盖上述指令之前失败。

    【讨论】:

    • 谢谢。在选择答案之前,我会稍等片刻,希望有人对如何解决它有更好的想法,但感谢您的回答。有没有办法查看 .swf 文件的代码?我试过在 Adob​​e Animate 中打开它,就像 Adobe tutorial 所说的那样,但 Animate 似乎不再支持 .swf 文件。我想如果我可以查看代码,我可能会看到我需要哪些其他文件才能让它工作。
    • @Taf04k 它加载(如我所料)4 个不同的外部模块,所有这些(很可能)与主 SWF 文件位于同一文件夹中:muscles.swf 器官.swf 骨架.swf 神经.swf
    • 将所有 5 个 swf 文件放在同一个文件夹中会使主要的文件工作得更好一些,但仍然不如 Ruffle。尝试在 Ruffle 中运行每个单独的模块产生的结果与通过文件夹中的主 swf 选择该模块的结果相同,所以我的猜测是可能有一些东西阻止了 swf 文件正确地相互引用。有没有安装这些文件的正确方法?另外,您是如何找到其他 swf 文件的?如果你是通过查看主 swf 的代码得到的,你用的是什么程序?
    • @Taf04k 如果您有一部旧的好 Google Chrome,仍然支持 Flash Player,您可以打开它的 Web控制台并监控所有传出的HTTP请求和应答,就这么简单,您甚至不需要任何特定工具。
    • @Organis 抱歉耽搁了。我决定暂时停止研究如何解决这个问题,因为我不需要。我已经标记了你的答案,因为它回答了我的第一个问题。我向老师建议,她的笔记本电脑上的 Chrome 版本可以降级为支持 Flash 的版本。感谢您回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多