Happy new year, everyone!
Hope this news is not too late.
After few month hard working, we successfully get existing As3 to work with WebAssembly. After our wasm hand-writing Flash-API finished(about 20% finished now). All of the existing As3 projects would successfully port to open-web-standard (js, wasm) without modifying the original As3 codes.
Here is a brief instruction on how it works:
2) Using a wasm that contains hand-writing Flash-API to support original dependencies of As3 codes, such as packages: flash.display, flash.events, flash.net, etc.
Here is a GitHub repository: GitHub - JasonHuang3D/AJC-Flash-WebAssembly-Examples: Examples that demonstrates As3 running on WebA...
that contains pre-built demos and bunny mark source codes with our SDK to build for both original flash player and js-wasm.
Currently, The whole building toolchain has been integrated with our customized FlashDevelop IDE, We modified a lot with FalconJX compiler and Emscripten Embind to support almost all of As3 language intrinsics.
The core motivation for this project is hand-writing Flash-API using c++. We have nothing to reference to but using "trace" and breakpoint in an original As3 project to roughly guess what the actual implementation inside of Flashplayer. We have done tones of testing before starting to write our own Flash-API. Currently, we only got basic display list, event flow, networking, and basic data structures: byteArray, etc. We have a lot more to do.
The reason for doing this whole project is simply because we love flash, we don't wanna just standing and watching it running to 2020. We all witnessed how powerful flash is. We wish to extend it to open web standard by using wasm. and providing Flash-API with more scripting languages such as JS, TS.
We started this project half a year ago. we tried to recruit as much talent developers as possible. Eventually, we got 2, me and a close friend of mine.
We are not very clever developers. even some skills were not capable of doing a project like this, such as java for compilers, c# for code IDE, etc. But we have faith. we know this is what we want to achieve, and we will never give up.
To deploy the whole wasm hand-writing Flash-API is urgent, as currently, more and more As3 developers started to migrating their project into hand-writing JS/TS.
So, we need your help to speed up our hand-writing Flash-API progress. If Adobe somehow would spare a tiny mercy on this project, that would be perfect.
please let me know if you are willing to help.
This is unbelievable! I fully support this effort
Adobe, if you're reading this I really hope that you'll at least acknowledge this thread. This could be a huge deal in preserving decades of content that would be lost after 2020 (and effectively massive amounts of advertising revenue generated by that content on sites that are still dominated by Flash games such as Kongregate, Newgrounds, etc.)
Recently I searched the OpenFl framework and saw that now it can be compiled to WASM via C++ (Emscripten). It has a very rich set of FlashAPI that is already implemented and tested.
I have an idea that if you can modify your AJC toolchain to use the FlashAPI of OpenFL project, you will save a lot of time to re-write the whole FlashAPI.
@BuiSyNguyen I think the appeal behind Jason's efforts is not the WASM target itself, but the fact you could port an AS3 project to WASM without changing a line of code. He's even separated out the compiled JS source from the runtime, effectively creating a plugin-free flash player. As he stated in his post, more developers are starting to port their AS3 code-bases by hand and an effort such as this could save millions of cumulative man-hours.
No offense to OpenFL, but it doesn't solve the fact that hundreds of thousands of games are going to be unusable after 2020. I think most Flash devs would prefer to work on new projects rather than trying to port old ones (which is extremely risky since there's no guarantee that porting something to OpenFL or other frameworks will result in a usable product in a reasonable amount of time).
@BuiSyNguyen I see! Sorry, initially I thought you were talking about the high-level Flash API in Haxe, I did not know that OpenFL had an API sitting on the browser's surface to interface with the outputted JS. If that's true, kudos to the OpenFL team for building it out that way! Combining the FalconJX effort s with that API sounds genius
This is a very impressive achievement, congratulations! Now the toolchain to use might still appear a bit unclear to some people (including me), but once things are more polished and simple tools are available, it will probably a life saver for many coders who want to keep their Flash content alive. Thank you so much for your work, and happy new year too!
(And I suggest we actually use another name than Flash, as it seems it has become some kind of curse in the IT industry )
I've just discovered this and it seems the GitHub link is now broken.
What is the status of this and where can I find the work to date?
Oh my god, this news pierces my heart like a thunderbolt, I couldn't believe it anymore !!! I almost want to cry. I programmed for 13 years in AS1 (Macromedia), and then in 2 and 3 (Adobe) and I started AGAL in 2013 approximately. When we announced the imminent death of Flash, I didn't want to believe it, Apple first, I said to myself, I don't care, hell with Apple, I code for the WEB anyway and that's it universal thanks to browsers. then when browsers blocked Flash Player by default, it was almost the end of the world for me! In any case, the end of my world. And there, it would be a question of making an AS3 compiler towards WebAssembly? Wow! There is no word.
we are all fighting to keep all our precious work alive and for sure soon there will be robust solutions other the javascrap.
What kind of help are you looking for? Programming, translation, communication, other?
Sinon, où peut-on trouver le compilateur dans son développement actuel? Et quelle version de FlashDevelop permettrait de faire les essais?
This project is abandonned ..I had confirmation by Jason this morning.. 😞
do you know the reason?
I dont no !! It's ugly! 😞 Adobe is missing a bandwagon this time! I hope someone with the right skills will have the intelligence to do it !! a compiler (AS3 to WASM)..
you can fork it and learn how to update it. I'm working on it, but my compiler skills are still fragile, but day after day it's better..
If this is true and not as always a unicorn, then I just have to party and offer drinks to all my friends !! I have been doing flash since 1999 when it was still Macromedia until 2013 with AS3 and I started AGAL ..
I have NEVER found an equivalent to AS3 in other languages. A well thought out and complete framework. I have been waiting for Adobe to offer a JS compiler for 7 years now, and today WASM which undoubtedly represents the future !! more and more applications will be online as a web service
My precedent post is a mistake! sorry.
Why not just transpile the "* .as" files to "* .razor" then the files that have become components can be used in a Microsoft Blazor application which will be compiled into a webassembly.
It's just an idea.
a As1/2/3 to TypeScript will be more efficient I think.
Typscript is indeed close to AS3 they are both EcmaScript. And strongly typed. But I don't know if we can compile TS directly into WebAssembly. At the moment, I am learning Blazor (C #) for this reason. I believe in the future of WebAssembly. I'm going to dig a little deeper into all this .. I don't know ABC codes, so I tell myself that by leaving * .as we can, perhaps, change the words AS to C # .. We must if we can even use Blazor component libraries at certain times. Frankly, I have a lot of wills, but not enough knowledge.
Adobe would have to make a wasm compiler for AS3 and invent the waf file (WebAssemblyFlash). 🙂
PS: I just found this and it looks well followed ..
yes, assemblyscript seems to be the most popular on this matter
There is also an interesting project that can be improved too (maybe for an expandable As1/2 and missing As3 things)
a slide of a company who had a As to Ts experience some years ago
I have a problem, I can't find any libraries or framwork for webassemblyscript, just to open a local file in binary, or text mode .. load an image, etc.
Or else, it's JS, I don't see the point in this case. I think at the moment C # is the most complete, which can use .Net Core and tierce components and maybe TypeScript in the same way.
We will have to wait for an evolution and a dedicated IDE or an integration by FlashDevelop for example.
In my opinion, the best thing that can be created is a WASM compiler for AS3 directly!
PS: If anyone knows how to import PNGs, load MP3s, and load XMLs with WebAssemblyScript, I beg to learn! 😄
> the best thing that can be created is a WASM compiler for AS3 directly
Indeed it would be worth to fork and improve this kind of project
Obviously, I say that, because I am a lover of AS3, for its simplicity with the most beautiful help system that I have been brought to see so far.