The Adobe Flash Actionscript 3 Display List
Friday, August 7th, 2009
Flash ActionScript 3 has dramatically changed and improved the way in which visual elements are added to a project. In fact, in ActionScript 2, visual elements were not recognized as belonging to the same group: different syntax was required to handle different visual elements. ActionScript 3 rationalises the whole business of working with visual assets by introducing a new, flexible and powerful concept: the display list.
The display list is a built-in inventory of all visual elements residing in an application and, like the document object model found in JavaScript, it has a hierarchical structure. It contains a motley crew of elements such as movie clips, sprites (single frame movie clips), shapes, bitmaps and video.
One key distinction that should be made between the elements in the display list is the one between display objects and display object containers. Objects such as movie clips are referred to as display object containers since they are capable of containing other display objects. Objects such as bitmaps, video and vector shapes (which cannot contain other objects), are simply referred to as display objects.
ActionScript 3 has a rich body of syntax for manipulating the display list: display objects can be added and removed and there are a number of different ways of targeting objects within the display list hierarchy.
The Stage is the object residing at the top of the display list hierarchy since it contains the entire Flash movie. Next, as we drill down through the hierarchy, we have the main timeline of the movie; and then we have all the various types of visual objects, divided into containers and objects. The main classes of display object containers are movie clips, sprites and loaders.
Movie clips have been around in Flash for ages; they are a bit like clones of the main movie, each with its own timeline. Sprites are a new to ActionScript 3: they are effectively movie clips without a timeline into which other objects can be placed. Their relative lack of complexity makes them ideal candidates for ActionScript animation. The loader class is used specifically as a container into which external assets such as bitmaps and SWF files can be loaded.
As regards objects which cannot act as containers, Shapes are vector objects usually created using Flash’s drawing tools. There is also a new class of object known as an Interactive Object. This includes simple buttons with an over, up and down state as well as text fields. First, there are dynamic text fields whose output can be manipulated with ActionScript. The same is true of the second type, input text fields; but this type can also accept input from the user.







