Nothing perfect and turn key exists at the moment, but all the necessary pieces are basically there.
It depends on what sort of preservation strategy you're going after.
1) "Emulation" style:
-- Open source flash player (a la Shumway)
2) "Automated Conversion" style:
-- Load-time conversion to a different format (ie, HTML5)-- Ahead-of-time conversion to a different format
3) Convert by hand
-- Rewrite in JS/HTML5
-- Rewrite in Haxe using a library like OpenFL (Haxe compiles to JS/HTML5, C++, also Flash)
There's a lot of options available, and a lot of useful primitives. Parsing and rendering Flash (SWF) content is basically solved (OpenFL has made particular strong strides in this area, Shumway is impressive too).
The really big missing piece is ActionScript execution. There are in fact various open source ActionScript VM's out there, and there are ways to parse ABC (Action Script Byte Code) and convert it -- either ahead of time or at load-time -- to something else, whether that's directly to JS, or something like Haxe (which then compiles it to JS or C++ or whatever), but to my knowledge nobody has a working solution that as of today combines Rendering + ActionScript Execution + RigorouslyTestedConvenientUX.
But all the pieces are there. You just need someone motivated enough and well funded enough to put it all together. Hopefully this news spurs that fire.
https://github.com/Corsaair/redtamarin
and added native implementations to render UI with OpenGL API, QT API, etc.
Now, even if it is technically feasible it is not like providing a plugin for the browsers, so that would be mainly to target desktop GUI apps which Adobe AIR is already doing very well.
As for converting the whole Flash API to HTML5/JS, some parts could be done but many parts would be missing or would be impossible to port because the Browser API can not support some of those, TCP/UDP sockets for example (possible with chrome non-standard API but then does not work everywhere).
Proposing to preserve Flash apps through a bytecode emulator is frankly somewhat absurd if you consider analogies. HTML 2.0 sites don't render on modern browsers either, but no-one seriously proposes maintaining a modern HTML 2.0 browser to view them. They simply run an old copy of Netscape Navigator, in a Windows 95 VM if necessary. Likewise with old BASIC programs on an Apple 2: no-one (from a preservation standpoint) runs them on an AppleSoft BASIC emulator; they run them on real AppleSoft BASIC inside an emulated Apple 2.
* Lightspark http://lightspark.github.io/
* Shumway http://mozilla.github.io/shumway/
* Gnash https://www.gnu.org/software/gnash/It was intended for Flash game development, and worked pretty well for that purpose. Unfortunately, we spent a lot of time dealing with large customers who wanted to use it to port existing Flash games to mobile, which was basically a neverending treadmill of having to implement obscure features that they didn’t even know they were relying on. :/
Parts of it have been open-sourced, but I wish the parent company would just release the whole thing. Last I knew, there was one guy maintaining it for one customer after the main engineers were acquihired.
" neverending treadmill of having to implement obscure features that they didn’t even know they were relying on,"
I been coding emulators for fun (i.e. NES, Scratch) and it's been an interesting journey with all the gotcha's involved - however I don't think I have the motivation for any flash based ones, the only exception I've worked on my scratch2apk emulator (javascript) which has plenty of games going for it!
There's also https://github.com/tobytailor/gordon/wiki
I guess most of them are more or less dead :-/
[1] https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A#VDP...
It would be like any other desktop application. You're running code of which you presumably know and trust the provenance. It's not like a malware Flash ad written by someone who found a security hole in the Flash player, that is loaded into a random web page by an unsuspecting user.
I recall seeing it on Windows too.