Actionscript for .NET 2.0 Framework

I was dumbfounded when I found this out but it seems that it is possible to use Actionscript 3.0 with .NET project as a scripting engine.


admin edit:
do learn to pick a category for your posts

Long time ago you could find a project from Zynga named Playscript
see http://playscript.github.io/

it was there github.com/playscript/playscript-mono

it was supposed to be integrated with Xamarin but then Zynga removed the sources

only thing left is github.com/mono/mono/tree/playscript-mono
but incomplete


there are many projects like that, that can take one language like AS3 and “convert” to another one, it can be done in different way (at the language syntax level, at the bytecode level, at the compiler level, etc.)

for example: ANTLR3 had an ActionScript target
see github.com/antlr/antlr3/tree/master/runtime/ActionScript
and https://www.antlr.org/wiki/display/ANTLR3/Antlr3ActionScriptTarget (web archive)

and more recently you got Apache Royale

so that “apple juice” project, nothing new really, mainly have the purpose to reuse AS3 scripts with Unity but then mention

Supports all actionscript3 syntax features except for namespace and with and E4X XML operations.

just for that I would prefer Apache Royale over it

in any case, the big piece missing will still be the Flash Platform API imho

Zynga donated the PlayScript Stage3D code to OpenFL

Now I think using OpenFL + Apache Royale could be a good future for AS3 web projects

1 Like

that would not really be a future

Do you believe that another project would be a better direction for AS3 on the web (without Flash Player)?

This is the role that OpenFL fulfills when partnered with Apache Royale

Or are you suggesting that the web is not a future?

AS3 is not just a syntax

see Pursuit of Simplicity

Well… it’s not only AS3, it is also the AVM2 part of the runtime, and also the Flash/AIR API, etc.

So when I say ActionScript 3.0 as a platform yeah it is more AS3+AVM2+API as a platform.

and in a way TypeScript got the same problem as OpenFL


Purely based on syntax, TypeScript is as good or as expressive than ActionScript 3
but that’s just syntax, in the end the “runtime” it target is JS
many versions of it which is pretty smart, but still it is only JS

so when you see blog posts and others that explain in great details how you can use TypeScript to program your whole Node.js project and how it is so great for bigger project

off course TypeScript is better than old JavaScript, but when you run it in something like Node.js
you don’t have the types, the interfaces, etc. at runtime, you have the version of JS that node is using

there is no VM that can enforce those types, interfaces, etc.
the “VM” is the JS language


OpenFL has the same problem.
You can combine it with Apache Royale to keep using the AS3 syntax (instead of Haxe)

so you end up having the AS3 part, the API part, but the VM part is still not there
and if you target the web then your “VM” again is the JS version you target


No, but the way you phrase the question is exactly the problem

I do not believe that ANY project can do as good as the flash player on the web
whatever Rust, WebAssembly, TypeScript, etc.

if there is no plugin allowed, then the only thing left is “JS as a VM”

JS as you can find it in the browsers or Node.js etc. does not enforce types, interfaces, etc.

you can plaster make-up all you want on a pig, it is still a pig


no it’s not, and specifically for apps

see for ex

that illustrate quite well the problem

people are getting fed that “JS can do everything everywhere”
so then they not only use JS client-side they also use it to render the app/page

no amount of syntax and API will save you from that

only way to make it work is to use SSR which is … Server Side Rendering
or put another way “let’s not do that rendering thing with JS on the client because JS is bad for that”

that’s why above I mentioned

the “VM” is the JS language

and

“JS as a VM”

and now I say AVM2 is better at that
no more plugin on the browser?, then that’s it you can’t have AVM2 running there
you can try to emulate it, simulate it, copy it … it is just not the same thing

it is worse, much much much worse

so yeah, the web target is dead to me and I consider it a waste of time
instead I prefer to build bigger app on the desktop or server or mobile