ActionScript

[3] It is now an implementation of ECMAScript (meaning it is a superset of the syntax and semantics of the language more widely known as JavaScript), though it originally arose as a sibling, both being influenced by HyperTalk.

ActionScript is used primarily for the development of websites and software targeting the Adobe Flash platform, originally finding use on web pages in the form of embedded SWF files.

Initially focused on animation, early versions of Flash content offered few interactivity features, thus had very limited scripting ability.

Later versions added functionality allowing for the creation of web-based games and rich web applications with streaming media (such as video and audio).

Today, ActionScript is suitable for desktop and mobile development through Adobe AIR; it is used in some database applications and in basic robotics as in Make Controller Kit.

[5] Because of this, code written in ActionScript 3.0 is generally targeted for Flash Player 9 and higher, and will not work in prior versions.

Adobe offers its Flex product line to meet the demand for rich web applications built on the Flash runtime, with behaviors and programming done in ActionScript.

Early Flash developers could attach a simple command, called an "action", to a button or a frame.

Although referred to internally as "ActionScript", the Flash 4 user manual and marketing documents continued to use the term "actions" to describe this set of commands.

Local variables may be declared with the var statement, and user-defined functions with parameter passing and return values can also be created.

Notably, ActionScript could now also be typed with a text editor rather than being assembled by choosing actions from drop-down lists and dialog box controls.

Two important features of ActionScript that distinguish it from later versions are its loose type system and its reliance on prototype-based inheritance.

In response to user demand for a language better equipped for larger and more complex applications, ActionScript 2.0 featured compile-time type checking and class-based syntax, such as the keywords class and extends.

ActionScript code is free form and thus may be created with whichever amount or style of whitespace that the author desires.

However, objects that belong to the primitive data types, which includes Boolean, Number, int, uint, and String, are immutable.

Some decompilers are capable of nearly full reconstruction of the original source file, down to the actual code that was used during creation (although results vary on a case-by-case basis).