Why Does Ruffle Play This SWF File Better Than Adobe?

855 Views Asked by At

I am helping my teacher fix some links in her web quest, both of which involved Flash. However, there is this one link that is troubling me. The 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), only the menu loads, and selecting a section loads a white screen. When run in the debug player, no errors show up. Why does the Ruffle Flash Player play it better than the official one? And, more importantly, how do I fix it entirely, or at least the Muscles section? I have Adobe Creative Cloud and have Adobe Animate downloaded, but the .swf file doesn't open in Animate.

Since there hasn't been an answer to the second part of the question yet after 10 days, I'm removing it from this post. I might make a new post for it sometime in the future if I have time and still need an answer.

1

There are 1 best solutions below

7
On BEST ANSWER

Although I don't have a precise and definite answer to your problem, as a Flash-ninja who's been with the technology for almost 20 years I will share some insights as will shed some light on the technical nuances, which is — alas — exceeds the comment limits by far.

  1. Why does the Ruffle Flash Player play it better than the official one?

A Flash application goes in a form of an SWF file, which also might have some external extras to download (text, binary, images and also additional SWF modules). There are multiple factors that might render an application unusable.

Why downloaded SWF might fail:

  • You download the main file, but not the additional files (personally I think this is the cause).
  • Application is URL-locked.
  • Application has a server back-end it cannot reach because it tries to access it via a relative URL.
  • Application has a server back-end it cannot reach because it is published with local-with-files security which doesn't matter via HTTP but matters if you run the application locally.

Why SWF by URL might fail:

  • Flash treats relative URLs in a very weird way: relatively to the current top-frame location on the current HTML page. If SWF is in different folder than the HTML it belongs to, then relative URLs could lead who knows where.
  • Application has a server back-end which rejects requests because SWF without HTML page does not have a valid session.
  • Application gets its settings (or checks the environment) from its HTML page which is not present in case of direct SWF link.

Well, then.

  1. More importantly, how do I fix it entirely, or at least the Muscles section?

Per suggestion above, try to figure (monitor the requests from the working application somehow) all the downloadable additions to the main file and download them as well — then the downloaded version just might work.

Otherwise, there's not much you can do, because of this. As you can see, Ruffle is still far from supporting Flash and ActionScript completely, one incompatible instruction — and the whole application just fails and will continue to fail until Ruffle covers the said instruction as well.