Demystifying Flex, Flash, AIR and AS3 with source code on GitHub


Have you ever clicked on an internal Flash class and got the
message, “Source could not be found for [className] in airglobal.swc”? Well, now if you ever wanted to learn about how core Flash API works you can do so here. The source was added to GitHub a few years ago without much fanfare but it’s new to me and very informative.

For example, if you wanted to learn how the AS3 JSON class works you can read the source of the class here. The code and related code looks like it’s in C, C++ or a form of AS3 that uses keywords like native and unknown metadata descriptions.

Looking at the source I learned of the reviver feature and how the toJSON() method worked. I have used this class in the past but missed these features because sometimes asdocs on some classes do not show the documentation. Looking at the source the purpose is clear.

A bit earlier than that the Flex SDK design docs were released here. These are interesting as you see the use cases for all the thought and features that have gone into the Flex SDK over the years including why there are workarounds in Flex because of internal Flash Player issues.

There’s also a project setup that may make it possible to package an updated WebKit in your AIR projects here. This was mentioned elsewhere on this site. There is no documentation so it is not clear how this is possible but the source is available.

There is also a web site here called Adobe Open Source that shows the projects Adobe has open sourced on GitHub. It is searchable and gives background on technologies used by Adobe.



I don’t post heavily on those stuff but yeah you can find tons of them :slight_smile:

for avmplus you have many sources

for more details you can also check out

The good news (even if no official statement from Adobe) is that from the “tamarin” project considered abandoned, it seems Adobe decided to revive lightly the project under the name “avmplus” and update the project sources with some changes they did recently; pretty god for Redtamarin as we are based out of the tamarin/avmplus sources code.

And yeah looking at those sources you can learn a lot about the internals and other details of “how things are supposed to work”.

Some sources are not documented and I try to document them in Redtamarin, like flash.trace.Trace for ex.

So yeah it is pretty interesting to get to see the sources of WebkitAIR, but this project imho is more something you would use to merge a browser with something like Redtamarin and does not really help for a browser ANE.

That said, there are a lot of concepts that could be reused later, like for example make the AS3 classes available in the context of browser.

Ideally, if enough people were contributing/sharing/communicating code we could perfectly imagine merging projects like AVMplus, WebkitAIR and CrossBridge, but unlikely to happen imho.

Also, as a side note, I do try to document (when time allows it) some of those undocumented or more obscur ways of working with AS3 things in the as3lang ActionScript 3 wiki, everyone is welcome to contribute.

For example, I put a but of stuff on the goto keyword, but documenting JSON reviver etc. could be interesting too.