The year is 2020. It is the year for perfect eyesight and the last year before Flash Player is officially dead.
What to do?
Here are some ways to be a Flash developer in 2020 and beyond.
Is your content under active development?
Yes!
You can use Adobe AIR and target only the desktop or mobile if you are okay with losing Flash Player on the web. If you would like to still target the web, though, there are a few other choices.
One option is a project called “Apache Royale.” The older Flex SDK was open-sourced and given to the Apache foundation for ongoing development. The open Flex SDK evolved into Apache Royale which has ActionScript 3.0 to JavaScript support. I would consider Apache Royale production stable but I have had difficulty porting ActionScript libraries using this method.
Please consider that Apache Royale is an ActionScript compiler but is missing most Flash Player APIs, so math will translate but complex visual applications will be missing the rendering and other behaviors needed to support your use-case.
There is a release of OpenFL on NPM here that works alongside Apache Royale for ActionScript 3.0 development or uses TypeScript, Haxe or JavaScript directly.
Another option is using OpenFL and Haxe. This path requires a port from ActionScript to Haxe, but works alongside Adobe AIR for desktop or mobile support, but publishes directly to HTML5 for the web so no Flash Player plugin is required. For debugging you can still use the Flash Player plugin locally to confirm accurate behavior. OpenFL also supports C++ native releases for desktop, mobile and video game consoles and is also used in embedded systems like TiVo boxes.
Nope.
Okay, is the content an animation then?
Yes, it is!
The best option is would probably be to use Adobe Animate, which supports exporting directly to HTML5 or to video formats. You can make small or large edits to the animation this way as well. This can be done easily if you have the original FLA document file used to create the SWF animation. You may also be able to use a SWF decompiler to revert a SWF into a compatible FLA file in order to try this method.
There are also many SWF to MP4 converters available online to turn your SWF file into a video. The file will not be editable but it be compatible with HTML5 for playback.
No it’s more complex
Alright… do you still have the original source code?
Yes I think so
With the original source code I would recommend going to the “active development” section above and considering your options. You could try an emulator but I would have very low expectations of that path working.
No
Unfortunately with no source code it is going to be difficult to get your project running. There are two different paths you could try:
One thing to try is to get a SWF decompiler. There is a free decompiler available called JPEXS which can help retrieve decompiled code. It may be more difficult to read and understand this code but this may be just what you need to follow the “active development” suggestions above.
The last choice you could take is the emulation route. Note that this was attempted by Mozilla in the “Shumway” project but ultimately it was canceled as the performance was not there. There are newer projects (like the Ruffle project) that tread this same territory but this would likely be suitable for only simpler projects.
The truth is that Flash Player has outlived other browser plugins and for good reason. Flash is an awesome way to develop games and interactive content and still remains the weapon of choice for many studios.
Do you have any other suggestions for production-ready Flash development or tips for porting content? Questions, concerns, quibbles? Comment below!