Flash ActionScript 3 overview: Difference between revisions
m (using an external editor) |
|||
Line 2: | Line 2: | ||
<pageby nominor="false" comments="false"/> | <pageby nominor="false" comments="false"/> | ||
This is part of the [[Flash]] series of articles. But it is '''not''' a tutorial | This is part of the [[Flash]] series of articles. But it is '''not''' a tutorial. The purpose of this entry is to provide some general information about ActionScript and some useful links. | ||
* The entry page for AS3 tutorials is [[Actionscript 3]]. | |||
See also: | |||
* The entry page for AS3 tutorials in this wiki is [[Actionscript 3]]. | |||
== Introduction - Writing and using AS Code == | == Introduction - Writing and using AS Code == | ||
Line 17: | Line 19: | ||
2. Within an [[Adobe Flex]] environment: | 2. Within an [[Adobe Flex]] environment: | ||
Flex is a framework introduced by Adobe that also compiles into swf files. Flex is meant to make it easier to conceive rich Internet applications that contain a variety of interactive interface elements (buttons, textfields, lists of images, etc.). The [http://www.adobe.com/products/flex/sdk/ Flex SDK] is free to use but lives in a command line environment. [http://www.adobe.com/products/flex/flexbuilder/ Flex Builder] provides a visual development environment. It is | Flex is a framework introduced by Adobe that also compiles into swf files. Flex is meant to make it easier to conceive rich Internet applications that contain a variety of interactive interface elements (buttons, textfields, lists of images, etc.). The [http://www.adobe.com/products/flex/sdk/ Flex SDK] is free to use but lives in a command line environment. [http://www.adobe.com/products/flex/flexbuilder/ Flex Builder] provides a visual development environment. It is free for students and educators starting (upon request). | ||
* Use the actionscript compiler bundled in the Flex framework to compile AS3 files. | * Use the actionscript compiler bundled in the Flex framework to compile AS3 files. See also our own [Adobe Flex] installation tips and [[AS 3 Compiling a program]] | ||
* Write a Minimal MXML application that contains little else than a call to a main function. An example of this can be found in [http://www.moock.org/eas3/examples Minimal MXML example by Moock]. | * Write a Minimal MXML application that contains little else than a call to a main function. An example of this can be found in [http://www.moock.org/eas3/examples Minimal MXML example by Moock]. | ||
* Write a Flex/MXML document that includes a script element. The use of actionscript within a <mx:Script> tag is explained in the [http://livedocs.adobe.com/flex/201/langref/mxml/script.html Flex Language Reference] or this blog post on [http://kanuwadhwa.wordpress.com/2007/10/05/using-actionscript-in-flex-applications/ Using ActionScript in Flex applications] | * Write a Flex/MXML document that includes a script element. The use of actionscript within a <mx:Script> tag is explained in the [http://livedocs.adobe.com/flex/201/langref/mxml/script.html Flex Language Reference] or this blog post on [http://kanuwadhwa.wordpress.com/2007/10/05/using-actionscript-in-flex-applications/ Using ActionScript in Flex applications] | ||
Line 151: | Line 153: | ||
{{quotation|To summarize: one stage, one root per SWF (which is the main timeline) and that root is an instance of a document class or the MainTimeline class if a document class isn't provided}} | {{quotation|To summarize: one stage, one root per SWF (which is the main timeline) and that root is an instance of a document class or the MainTimeline class if a document class isn't provided}} | ||
== Action Script tutorials == | == More Action Script entries in this wiki == | ||
=== Action Script tutorials === | |||
In this wiki we teach some Action Script to Flash designers. | (1) In this wiki we teach some Action Script to Flash designers. | ||
* [[Flash button tutorial]] | * [[Flash button tutorial]] | ||
* [[ActionScript 3 event handling tutorial]]. | * [[ActionScript 3 event handling tutorial]]. | ||
* [[ActionScript 3 interactive objects tutorial]] | * [[ActionScript 3 interactive objects tutorial]] | ||
Then we also have "pure" Action Script tutorials for people who wish to learn how to program. | (2) Then we also have "pure" Action Script tutorials for people who wish to learn how to program. | ||
* The entry point is [[Actionscript 3]] As of november 2007 there is a complete list of novice tutorials. Other levels are under constuction | * The entry point is [[Actionscript 3]] As of november 2007 there is a complete list of novice tutorials. Other levels are under constuction | ||
** [[Adobe Flex]] (includes how to install the Flex SDK) | |||
** [[AS3 Compiling a program]] | |||
** [[AS3 Tutorials Novice]] | ** [[AS3 Tutorials Novice]] | ||
* All the Actionscript related articles are tagged with [[:Category:Actionscript 3|Actionscript 3]]. Alternatively, see [[:Category:Tutorials|Tutorials]] | * All the Actionscript related articles are tagged with [[:Category:Actionscript 3|Actionscript 3]]. Alternatively, see [[:Category:Tutorials|Tutorials]] | ||
== Useful Links == | === Useful Links pages === | ||
* [[AS3 Links Documentation|On-line Documentation]], Reference manuals, Reference manuals, AS2 vs. AS3 comparisons, Overviews, and more. | * [[AS3 Links Documentation|On-line Documentation]], Reference manuals, Reference manuals, AS2 vs. AS3 comparisons, Overviews, and more. | ||
Line 169: | Line 176: | ||
* [[AS3 Links Toolkits|Toolkits, Libraries, and Components]] | * [[AS3 Links Toolkits|Toolkits, Libraries, and Components]] | ||
== | == Links == | ||
Most links are in specialized links pages (see just above) | |||
* [http://www.senocular.com/flash/tutorials/as3withmxmlc/ Sernocular's Beginner Guide to Getting Started with AS3]. It explains how to use any editor plus the '''mxmlc''' compiler. | |||
There are many more AS3 tutorials on the web (additions needed here). | |||
=== Development environments === | === Development environments === | ||
Line 180: | Line 193: | ||
* [http://drawk.wordpress.com/tag/development/flash/as3/ Drawk's blog] Publishes also source and a good [http://code.google.com/p/tweener/ tweener] library. | * [http://drawk.wordpress.com/tag/development/flash/as3/ Drawk's blog] Publishes also source and a good [http://code.google.com/p/tweener/ tweener] library. | ||
* [http://www.websector.de/blog/ WS-Blog] by Jens Krause. | * [http://www.websector.de/blog/ WS-Blog] by Jens Krause. | ||
[[Category: Multimedia]] | [[Category: Multimedia]] |
Revision as of 15:55, 28 September 2008
<pageby nominor="false" comments="false"/>
This is part of the Flash series of articles. But it is not a tutorial. The purpose of this entry is to provide some general information about ActionScript and some useful links.
See also:
- The entry page for AS3 tutorials in this wiki is Actionscript 3.
Introduction - Writing and using AS Code
“ActionScript 3.0 is a dialect of ECMAScript which formalizes the features of ActionScript 2.0, adds the capabilities of ECMAScript for XML (E4X), and unifies the language into a coherent whole.” (Grossman, 2006).
Basically, there are different ways of using ActionScript 3:
1. Within a Flash CS3 environment:
- Use the Flash CS3 environment more less as "in the ActionScript 2" way, i.e. you add bits of code to certain frames
- Write action code with a class structure in a file, then import to a frame through the properties panel.
- Write your code in a file and compile it (you also may use Flash CS3 that way). No drawings, just code !
2. Within an Adobe Flex environment: Flex is a framework introduced by Adobe that also compiles into swf files. Flex is meant to make it easier to conceive rich Internet applications that contain a variety of interactive interface elements (buttons, textfields, lists of images, etc.). The Flex SDK is free to use but lives in a command line environment. Flex Builder provides a visual development environment. It is free for students and educators starting (upon request).
- Use the actionscript compiler bundled in the Flex framework to compile AS3 files. See also our own [Adobe Flex] installation tips and AS 3 Compiling a program
- Write a Minimal MXML application that contains little else than a call to a main function. An example of this can be found in Minimal MXML example by Moock.
- Write a Flex/MXML document that includes a script element. The use of actionscript within a <mx:Script> tag is explained in the Flex Language Reference or this blog post on Using ActionScript in Flex applications
Using ActionScript like a Flash Designer
- Create a new layer
- Click on a frame (typically frame 1)
- Hit F9, the copy/paste or write your code
This is the way most of the Flash examples made in our tutorials were made
Scripting in the timeline does not require from you to use classes. However, sometimes you need to import packages, i.e. when Flash whines that it can't find a method. Examples are:
import Fl.managers.FocusManager; // to work with keypress events import fl.video.MetadataEvent; // to work with cue points in flv videos
Using ActionScript classes in CS3
Most examples in the official Using ActionScript 3.0 Components and ActionScript 3.0 Language and Components Reference are made with a class structure and require that you learn this (read also Using examples in the ActionScript 3.0 Language Reference):
- Write code in a AS file and give the file the same name as the primary class (for example: ContextMenuExample.as).
- Create and save a new empty FLA file in the same directory as the AS file.
- In the Properties tab of the Property inspector enter the class name of the primary class for the example in the Document class text box (for example: ContextMenuExample).
- Save your changes to the FLA file.
Note for Flash designers: Some of the code in the Flash doc can be simplified to work with the "timeline scripting method". Other code can not and you do have to code with a "class structure".
Stand-alone AS3 code development / SDK and editors
You do not need to buy Flash CS3 (that's actually a cool thing) to program in AS3 and to create *.swf files. You can either use:
- Flex Builder - a commercial Eclipse plugin available from Adobe (free for education upon request).
- Just the Flex SDK together with a "normal" programming editor.
In addition you may use MXML, an XML-based user interface markup language.
Read how to install the Flex Framework.
- Using the compiler
- Just type something like:
mxmlc HelloWorld.as
.... This will make an *.swf file
- Development support other than Eclipse
If you find IDEs (.e. the Flash builder) too hard to use you can find editors with ActionScript support or at least syntax support for JavaScript/Java, e.g.
- Flashdevelop
- Emacs (read this if you know about Emacs)
- JEdit. You can use the Java beautifier, but you may have to find the plugins with google and install manually. Btw. JEdit also has a wikipedia mode)
- If configuring and learning Flashdevelop, Emacs, JEDIT etc appears too complex to master, a very easy to use editor in Unix/Linux environments is pico (but you will not get any syntax support). See text editor article in this wiki for a discussion/presentation of some editing software.
- Finally, you also can use the CS3/Flash ActionScript editor if you own this package.
The class hierarchy
At the origin, there is the Object. It has many subclasses (about 151 I'd say).
EventDispatcher
EventDispatcher implements is the base class for the DisplayObject class, i.e. all displayed objects. It is a direct child of Object and has 29 subclasses. A few are:
- DisplayObject (see below)
- NetStream NetStream (use to deal with streaming connections)
- Sound (use to load/play external sound)
- SoundChannel (control sound)
- Timer (use for time-based animation)
The DisplayObject
The ActionScript 3.0 flash.display package defines a whole lot of different kinds of visual objects that can appear in the Flash Player. DisplayObject is a child of EventDispatcher, child of Object
Below is summary table of ActionScript 3 interactive display objects. It shows that interactive objects are defined as hierarchical classes. Methods and properties that work for a parent class (e.g. Sprite) also will work for its child classes (e.g. UIComponent). Links point to the technical reference manual at Adobe.
- DisplayObject, see also Core display classes overview.
- InteractiveObject (base class for all interactive objects)
- DisplayObjectContainer
- Loader: Class for loading objects (Bitmaps, AS3 Sprites or Movieclips, or AS 1/2 AVM1Movie).
- Sprite: Manipulable container of objects
- FLVPlayback FLVPlayback]
- FLVPlaybackCaptioning
- MovieClip: refers to a movie clip symbol created in the Flash authoring tool.
- UIComponent
- Stage
- SimpleButton
- TextField
- DisplayObjectContainer
- AVM1Movie
- Bitmap: for displaying a bitmap image
- MorphShape:
- Shape: on-screen canvas for drawing content
- StaticText: Frozen text
- Video: contains video
- InteractiveObject (base class for all interactive objects)
Events
The Event class is used as the base class for the creation of Event objects, which are passed as parameters to event listeners when an event occurs. Event is a direct child of the object. There are 26 direct subclasses and Flex has even more. We only will show a few here.
- Event
- ComponentEvent (UIComponent class related)
- KeyboardEvent (user presses key)
- MetadataEve (cue points and user metadata requests)
- MotionEvent (related to fl.motion.Animator class)
- MouseEvent (user does something with the mouse)
- SliderEvent (related to the UI Slider component)
- TimerEvent (related to Timer class)
- VideoEvent (when the user plays a video)
Interfaces:
- IVPEvent (related to the FLV component)
When Flash executes
The display list
At at given time in your animation, your Flash application contains a hierarchy of displayed objects: the display list. It contains all the visible elements and they fall in one of the following categories:
- The stage: Each application has one stage object and it contains all on-screen display objects (i.e. containers or simple objects). This includes objects that the user can't see (e.g. ones that are outside of the stage).
- Display object containers, i.e. objects that can contain both simple display objects and other display object containers.
- (Simple) display objects
Stage and Timeline
“To summarize: one stage, one root per SWF (which is the main timeline) and that root is an instance of a document class or the MainTimeline class if a document class isn't provided”
More Action Script entries in this wiki
Action Script tutorials
(1) In this wiki we teach some Action Script to Flash designers.
- Flash button tutorial
- ActionScript 3 event handling tutorial.
- ActionScript 3 interactive objects tutorial
(2) Then we also have "pure" Action Script tutorials for people who wish to learn how to program.
- The entry point is Actionscript 3 As of november 2007 there is a complete list of novice tutorials. Other levels are under constuction
- Adobe Flex (includes how to install the Flex SDK)
- AS3 Compiling a program
- AS3 Tutorials Novice
- All the Actionscript related articles are tagged with Actionscript 3. Alternatively, see Tutorials
Useful Links pages
- On-line Documentation, Reference manuals, Reference manuals, AS2 vs. AS3 comparisons, Overviews, and more.
- On-line Tutorials
- Toolkits, Libraries, and Components
Links
Most links are in specialized links pages (see just above)
- Sernocular's Beginner Guide to Getting Started with AS3. It explains how to use any editor plus the mxmlc compiler.
There are many more AS3 tutorials on the web (additions needed here).
Development environments
- Flash/ActionScript3 Programming under Ubuntu ... Tested, this works :)
Blogs and stuff
- Tag: Actionscript3 at Wordpress
- Drawk's blog Publishes also source and a good tweener library.
- WS-Blog by Jens Krause.