Table of Contents

13.2 Types of Movie Clips

Not all movie clips are created equal. In fact, there are three distinct types of clip available in Flash:

In addition to these three official varieties, we can distinguish four subcategories of regular movie clips:

While these unofficial subcategories are not formal terms used in ActionScript, they provide a useful way to think about programming with movie clips. Let's take a closer look at each movie clip type.

13.2.1 Main Movies

The main movie of a Flash document is the main timeline and Stage present in every .swf document. The main movie is the foundation for all the content in the document, including all other movie clips. We sometimes refer to the main movie as the main timeline, the main movie timeline, the main Stage, or simply the root.

Note that while each .swf file contains only one main movie, more than one .swf file can reside in the Flash Player at once�we can load multiple .swf documents (and therefore multiple main movies) onto a stack of levels via the loadMovie( ) and unloadMovie( ) functions, which we'll study later.

Main movies can be manipulated in much the same way as regular movie clips, with the following exceptions:

13.2.2 Regular Movie Clips

Regular movie clips are the most common and fundamental content containers; they hold visual elements and sounds, and they can even react to user input and movie playback through event handlers. For JavaScript programmers who are used to working with DHTML, it may be helpful to think of the main movie as analogous to an HTML document object and regular movie clips as analogous to that document's layer objects.

13.2.3 Components

An improvement over Flash 5 Smart Clips, a Flash MX component is a movie clip that includes a graphical user interface used to customize the clip's properties in the authoring tool. Components typically are developed by advanced programmers to distribute as self-contained program modules, such as a pull-down menu or slider bar. Components also provide an easy way for less-experienced Flash authors to customize a movie clip's behavior without knowing how the code of the clip works. We'll cover components in detail in Chapter 14 and Chapter 16. Flash MX comes with a collection of ready-made interface components known as the Flash UI Components. To access the Flash UI Components, choose Window figs/U2192.gif Components.

13.2.4 Process Clips

A process clip is a movie clip used not for content but simply to execute a block of code repeatedly. Process clips can be built with an onEnterFrame( ) event handler or with a timeline loop, as we saw in Chapter 8 under Section 8.7.

As of Flash MX, the functionality of process clips can be partially replaced by the setInterval( ) function, which executes a function or method periodically. Timed code should be implemented with setInterval( ), whereas code synched specifically with the frame rate should be implemented with a process clip. See the ActionScript Language Reference for a discussion of setInterval( ).

13.2.5 Script Clips

Like a process clip, a script clip is an empty movie clip used not for content but for tracking some variable, defining some class, or simply executing some arbitrary script. For example, in Flash 5, we can use a script clip to hold event handlers that detect keypresses or mouse events. In Flash MX, we can use a script clip to create a so-called "code only" component.

13.2.6 Linked Clips

A linked clip is a movie clip that either exports from or imports into the Library of a movie. Export and import settings are available through every movie clip's Linkage option, found in the Library. We most often use linked clips when dynamically generating an instance of a clip directly from a Library symbol using the attachMovie( ) method, as we'll see later.

13.2.7 Seed Clips

Before the attachMovie( ) method was introduced in Flash 5, we used the duplicateMovieClip( ) function to create new movie clips based on some existing clip, called a seed clip. A seed clip is a movie clip that resides on stage solely for the purpose of being copied via duplicateMovieClip( ). With the introduction of attachMovie( ), which instantiates clips from the Library, the need for on-stage seed clips has diminished. However, we still use seed clips and duplicateMovieClip( ) when we wish to retain a clip's transformations and onClipEvent( ) handlers in the process of copying it.

In a movie that makes heavy use of duplicateMovieClip( ) to dynamically generate content, it's common to see a row of seed clips on the outskirts of the movie canvas. The seed clips are used only to derive duplicate clips and are, therefore, kept off stage.


Table of Contents