As Flash MX becomes an integral part of enterprise applications and rich-media interfaces, developers must learn to incorporate Flash into their established software development processes. A few years ago, Flash's idiosyncrasies would have required staffing a whole new position to fill gaps in both design and development, but since then, Flash has evolved into a platform that allows designers and developers to work more autonomously, in a fashion more consistent with traditional web or desktop applications. But maintaining efficiency and scalability in rich-client development entails introducing your developers to a new authoring model.
This article compares Flash MX development to familiar traditional environments like .NET, Visual Basic and Java. You'll see how the structure of Flash movies and the nature of the Flash IDE require that developers adopt a new mindset and a few new techniques.
Nonlinear Time-based Authoring
Flash borrows its overall structure from film. Flash movies consist of items placed on a timeline separated into frames. When played by themselves, without controlling code, Flash movies play exactly like filmsone frame after another, from beginning to end.
To create a Flash movie, authors place elements onto the timeline in layers. Layers correspond to a z-order, so authors can control whether elements appear above or below other elements. The layers can also function as segments within the timeline corresponding to different "screens" of an application.
Figure 1 depicts a layered timeline split into several logical segments, with keyframes defining changes on individual timeline layers.
 | |
| Figure 1: Dots on frames represent keyframes on the timeline. Filled dots mean that the keyframe has something in it. |
Each element has its own timeline. A single frame can account for some Flash elements, such as basic shapes. More complex elements, called Movie Clips, have their own timelines. Movie Clips let Flash movies play child movies within a parent. Each Movie Clip plays on its own timeline, but each clip is itself controlled by its parent.
Flash lets you attach actionsscriptsto movie frames so you don't have to author linearly. Actions can send the playback head to another frame, load another Flash movie, and even send an external message to the containing application. Timeline events (such as exiting a frame) and user events (such as clicking a mouse button) can both invoke actions. This dual event-source facility makes Flash a non-linear time-based application medium.