Foreword
Preface
Part I. The ActionScript 2.0 Language
1. ActionScript 2.0 Overview
ActionScript 2.0 Features
Features Introduced by Flash Player 7
Flash MX 2004 Version 2 Components
ActionScript 1.0 and 2.0 in Flash Player 6 and 7
Let's Go OOP
2. Object-Oriented ActionScript
Procedural Programming and Object-Oriented Programming
Key Object-Oriented Programming Concepts
But How Do I Apply OOP?
On with the Show!
3. Datatypes and Type Checking
Why Static Typing?
Type Syntax
Compatible Types
Built-in Dynamic Classes
Circumventing Type Checking
Casting
Datatype Information for Built-in Classes
ActionScript 2.0 Type Checking Gotchas
Up Next: Creating Classes-Your Own Datatypes!
4. Classes
Defining Classes
Constructor Functions (Take 1)
Properties
Methods
Constructor Functions (Take 2)
Completing the Box Class
Putting Theory into Practice
5. Authoring an ActionScript 2.0 Class
Class Authoring Quick Start
Designing the ImageViewer Class
ImageViewer Implementation (Take 1)
Using ImageViewer in a Movie
ImageViewer Implementation (Take 2)
ImageViewer Implementation (Take 3)
Back to the Classroom
6. Inheritance
A Primer on Inheritance
Subclasses as Subtypes
An OOP Chat Example
Overriding
Constructor Functions in Subclasses
Subclassing Built-in Classes
Augmenting Built-in Classes and Objects
The Theory of Inheritance
Abstract and Final Classes Not Supported
Let's Try Inheritance Out
7. Authoring an ActionScript 2.0 Subclass
Extending ImageViewer's Capabilities
The ImageViewerDeluxe Skeleton
Adding setPosition( ) and setSize( ) Methods
Autosizing the Image Viewer
Using ImageViewerDeluxe
Moving Right Along
8. Interfaces
The Case for Interfaces
Interfaces and Multidatatype Classes
Interface Syntax and Use
Multiple Type Inheritance with Interfaces
Up Next, Packages
9. Packages
Package Syntax
Defining Packages
Package Access and the Classpath
Simulating Packages in ActionScript 1.0
Just a Little More Theory
10. Exceptions
The Exception-Handling Cycle
Handling Multiple Types of Exceptions
Exception Bubbling
The finally Block
Nested Exceptions
Control Flow Changes in try/catch/finally
Limitations of Exception Handling in ActionScript 2.0
From Concepts to Code
Part II. Application Development
11. An OOP Application Framework
The Basic Directory Structure
The Flash Document (.fla file)
The Classes
The Document Timeline
The Exported Flash Movie (.swf file)
Projects in Flash MX Professional 2004
Let's See It in Action!
12. Using Components with ActionScript 2.0
Currency Converter Application Overview
Preparing the Flash Document
The CurrencyConverter Class
Handling Component Events
Components Complete
13. MovieClip Subclasses
The Duality of MovieClip Subclasses
Avatar: A MovieClip Subclass Example
Avatar: The Composition Version
Issues with Nested Assets
A Note on MovieClip Sub-subclasses
Curiouser and Curiouser
14. Distributing Class Libraries
Sharing Class Source Files
Sharing Classes Without Sharing Source Files
Solving Real OOP Problems
Part III. Design Pattern Examples in ActionScript 2.0
15. Introduction to Design Patterns
Bring on the Patterns
16. The Observer Design Pattern
Implementing Observer in ActionScript 2.0
Logger: A Complete Observer Example
Memory Management Issues with Observer
Beyond Observer
17. The Singleton Design Pattern
Implementing Singleton in ActionScript 2.0
The Singleton Pattern in the Logger Class
Singleton Versus Static Methods and Static Properties
A Warning Against Singletons as Globals
On to User Interfaces
18. The Model-View-Controller Design Pattern
The General Architecture of MVC
A Generalized MVC Implementation
An MVC Clock
Further Exploration
19. The Delegation Event Model
Structure and Participants
The Flow of Logic
Core Implementation
NightSky: A Delegation Event Model Example
Other Event Architectures in ActionScript
From somePlace to someOtherPlace
Part IV. Appendixes
A. ActionScript 2.0 Language Quick Reference
B. Differences from ECMAScript Edition 4
Index