Copy link to clipboard
Copied
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:
1) We use the falconJX compiler to compile As3 source codes into JavaScript, we modified a lot to support interacting with wasm. such as class inheritance, optional function params, etc.
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.
3) Linking the compiled JavaScript from step1 with wasm from step2 at runtime.
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.
Sincerely,
Jason Huang
Copy link to clipboard
Copied
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.)
Copy link to clipboard
Copied
Hi Jason,
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.
Copy link to clipboard
Copied
@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).
Copy link to clipboard
Copied
I did not propose OpenFL, I've been actually paying attention to Jason's work for 6 months, and I sure know he is customizing FalconJX compiler (now its name changed to Royale) to transpile from AS3 to a JavaScript source that combined with his WASM FlashAPI.
Please read again: I suggest he use the WASM version of OpenFL's FlashAPI for his javascript side. Still use the same AS3 source code without changing any line.
Copy link to clipboard
Copied
@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
Copy link to clipboard
Copied
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 )
Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
a fork for himself apparently
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
we are all fighting to keep all our precious work alive and for sure soon there will be robust solutions other the javascrap.
Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
This project is abandonned ..I had confirmation by Jason this morning.. 😞
Copy link to clipboard
Copied
do you know the reason?
Copy link to clipboard
Copied
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)..
Copy link to clipboard
Copied
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..
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
a As1/2/3 to TypeScript will be more efficient I think.
Copy link to clipboard
Copied
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 ..
https://github.com/AssemblyScript/assemblyscript
Copy link to clipboard
Copied
yes, assemblyscript seems to be the most popular on this matter
Copy link to clipboard
Copied
There is also an interesting project that can be improved too (maybe for an expandable As1/2 and missing As3 things)
https://github.com/as3web/as3-to-ts
a slide of a company who had a As to Ts experience some years ago
https://www.slideshare.net/mcrtechnights/the-journey-from-actionscript-to-typescript
Copy link to clipboard
Copied
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! 😄
Copy link to clipboard
Copied
> 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
Copy link to clipboard
Copied
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.