ActionScript: Difference between revisions
Tim Starling (talk | contribs) rm self promotion "From internal events to Class construction, he's your man.", give me a break |
|||
Line 106: | Line 106: | ||
* [http://www.kirupa.com/developer/actionscript/ Kirupa.com: ActionScript Guide] - Large number of tutorials covering many techniques. |
* [http://www.kirupa.com/developer/actionscript/ Kirupa.com: ActionScript Guide] - Large number of tutorials covering many techniques. |
||
* [http://www.codealloy.com/actionscriptfaq.htm CodeAlloy: ActionScript 2.0 FAQ] - Information about changes in the second version. |
* [http://www.codealloy.com/actionscriptfaq.htm CodeAlloy: ActionScript 2.0 FAQ] - Information about changes in the second version. |
||
* [http://www.gskinner.com/ gSkinner.com] - ActionScript 2.0 Object Oriented Programmer. From internal events to Class construction, he's your man. |
|||
== See Also == |
== See Also == |
Revision as of 02:40, 29 July 2004
ActionScript is an ECMAScript-based programming language used for controlling Macromedia Flash movies and applications. Since both ActionScript and JavaScript are based on the same ECMAScript syntax, fluency in one easily translates to the other. However, the client model is dramatically different: while JavaScript deals with windows, documents and forms, ActionScript deals with movie-clips, text fields and sounds.
ActionScript achieved something resembling it's current syntax (retroactively named ActionScript 1.0) in Flash 5, the first version of Flash to be thoroughly programmable. Flash 6 broadened the power of the programming environment by adding many more built-in functions and allowing more programatic control of movie elements. Flash 7 (MX 2004) introduced ActionScript 2.0, which adds strong typing and object-oriented features such as explicit class declarations, inheritance, interfaces, and encapsulation. ActionScript 1.0 and 2.0 share the same compiled form within Flash SWFs.
Features of the Flash ActionScript implementation that JavaScript programmers may find interesting:
- Everything is designed to be asynchronous; callbacks are ubiquitous, but Event objects do not exist.
- The XML implementation has been solid since Flash 5. Flash can send and receive XML asynchronously.
ActionScript code is frequently written directly in the Flash authoring environment, which offers useful reference and powerful aids for syntax checking. In this case, the source code is saved along with the rest of the movie in a .fla file. It is also common for ActionScript code to be imported from external text files via #include statements. In this case, the external files are often given .as extensions, but this is not a universal convention.
Coding style
The following techniques are not required, but contribute towards more efficient, or at least more easily understandable code.
Naming
Naming involves capitalisation of code elements. Function names and variables should begin with a lower-case letter; objects should be capitalized. The first letter of each subsequent word should also be capitalised in both cases.
- Components or objects: ProductInformation, MovieController
- Variable or property: userName, myHtml, rawXml
The Flash code editor features code completion only when variables are named according to a specific format. This involves appending the variable type to the end of the variable name.
Object type | Suffix string | Example |
---|---|---|
String | _str | myString_str |
Array | _array | myArray_array |
MovieClip | _mc | myMovieClip_mc |
TextField | _txt | myTextField_txt |
Date | _date | myDate_date |
Sound | _sound | mySound_sound |
XML | _xml | myXML_xml |
Color | _color | myColor_color |
Commenting code
Commenting code is always recommended. Comments should document the decisions made while building the code, telling the story of what it attempts to do. A future developer should be able to pickup the logic of the code with the assistance of the comments.
var clicks = 0; // This is a simple comment
/* This is a multiline comment. ..... ..... */
Some common methods for indicating important comments are:
// :TODO: more work to be done here // :BUG: [bugid] this is a known issue // :KLUDGE: this bit isn't very elegant // :TRICKY: lots of interactions, think twice before modifying
Timeline layout
- Don't use default layer names (Layer 1, Layer 2, etc.), provide your own intuitive labels.
- Groups layers together in folders, where it makes sense.
- Place ActionScript layers at the top of the stack, to easily locate all the code on the timeline.
- Lock layers currently not in use.
Scoping variables
_parent.myVar.blah = 100; // Use relative addressing like this _root.myClip = 200; // Avoid absolute addressing as much as possible _global.myVar = 300; // _global variables are available to all movies within the player
Keep actions together
- Whenever possible, all code should be placed in one location, making it easier to find and debug. Preferably frame 1 of the timeline. (However if a preloader is used, code may need to be placed on frame 2)
- Where large blocks of code are present, split the code into logical sections with comments as headers.
Avoid attaching code to Movie Clips or buttons
Attempt to write event code on a frame rather than on the object itself, unless it is purely a function call.
// CODE ON BUTTON - Not Recommended on (release) { play(); }
// CODE ON FRAME - Recommended myButton.onRelease = function() { play(); }
Source
Information above is summarised from Macromedia's ActionScript Coding Standards. For a more complete explanation, please see the full document.
http://www.macromedia.com/devnet/mx/flash/whitepapers/actionscript_standards.pdf
External links
- Macromedia Flash Support Center: Using ActionScript - Tutorials and articles directly from Macromedia.
- Official ActionScript Coding Standards [PDF]
- Actionscript.org - Developer community and source of tutorials, code-snippets and movie-clips.
- Kirupa.com: ActionScript Guide - Large number of tutorials covering many techniques.
- CodeAlloy: ActionScript 2.0 FAQ - Information about changes in the second version.
See Also
- ECMA-Script
- Lingo for Macromedia Director
- Macromedia Flash
- Scripting
- Macromedia