I was just asked by a friend, “if code on the timeline in Flash 8 is no different from AS1 because it isn’t inside a class file [therefore not type-checked or anything else that typically differentiates AS2 from AS1], what is AS3 code on the timeline in Flash 9?”.

I didn’t have a simple answer. That code will still be runtime checked etc, it certainly isn’t AS1 or AS2. The reason we can’t define what it is exactly is probably due to the nature of the language.

ActionScript has class structures, but they aren’t the same behind the scenes as classes in what we call traditional class based languages, they are actually collections of “traits” and “property attributes” on an object prototype. If those terms are new to you, you might find the following paper of interest.

I found this paper quite some time ago probably through MXNA, and it has stuck in my mind since I first read it, it gave me a much better understanding of how a prototype language is very different to anything else, and how that makes it very suitable for GUIs which is the subject of the article.

It’s a bit old, but 100% worth the read.

http://waltersmith.us/wp-content/uploads/2005/12/OOPSLA95.pdf

That paper doesn’t really get technical enough, but there’s a lot more info on this matter in the LiveDocs which directly related to ActionScript. The pages in that particular LiveDoc are really good reading if you like to look behind the curtain.