Before diving into any Actionscript 3 coding I think it might be useful for anyone new to the language to put it into some sort of context. So in the beginning there was...
Flash 4 actions
A basic scripting language was first first introduced into Flash in version 4 by lead developer Gary Grossman. Although it didn't support even basic features such as arrays or functions it had enough potential to kickstart a small community of Flash programmers.
Introduced in version 5, Actionscript 1 was a formalised and greatly expanded scripting language for Flash. AS1 scripts could be attached to frames, Buttons and MovieClips. Although powerful to work with this freeform scripting practice encouraged cryptic and often incomprehensible "spaghetti code".
Introduced along with the MX range of Macromedia products; Actionscript 2 was an ECMA 262 compliant object oriented version of Actionscript 1. The spaghetti code issue was largely resolved by storing AS2 classes in separate external class files and linking them to MovieClips in the Flash library. Legacy support for AS1 and F4 scripts eventually led to inconsistent and often contradictory usage within the language.
Introduced with Flex 2, and later supported in Flash CS3, Actionscript 3 was a major standardisation of the language. Although superficially similar to AS2, legacy support was ditched in favour of consistent conventions and practices. Architected alongside a dedicated JIT compiler (AVM2) AS3 executes considerably faster than previous versions.