| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
The ActionScript 2.0 Language | |
| |
| |
| |
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 | |
| |
| |
| |
Object-Oriented ActionScript | |
| |
| |
Procedural Programming and Object-Oriented Programming | |
| |
| |
Key Object-Oriented Programming Concepts | |
| |
| |
But How Do I Apply OOP? | |
| |
| |
On with the Show! | |
| |
| |
| |
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! | |
| |
| |
| |
Classes | |
| |
| |
Defining Classes | |
| |
| |
Constructor Functions (Take 1) | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
Constructor Functions (Take 2) | |
| |
| |
Completing the Box Class | |
| |
| |
Putting Theory into Practice | |
| |
| |
| |
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 | |
| |
| |
| |
Inheritance | |
| |
| |
A Primer on Inheritance | |
| |
| |
Subclasses as Subtypes | |
| |
| |
An OOP Chat Example | |
| |
| |
Overriding Methods and Properties | |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
Interfaces | |
| |
| |
The Case for Interfaces | |
| |
| |
Interfaces and Multidatatype Classes | |
| |
| |
Interface Syntax and Use | |
| |
| |
Multiple Type Inheritance with Interfaces | |
| |
| |
Up Next, Packages | |
| |
| |
| |
Packages | |
| |
| |
Package Syntax | |
| |
| |
Defining Packages | |
| |
| |
Package Access and the Classpath | |
| |
| |
Simulating Packages in ActionScript 1.0 | |
| |
| |
Just a Little More Theory | |
| |
| |
| |
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 | |
| |
| |
| |
Application Development | |
| |
| |
| |
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! | |
| |
| |
| |
Using Components with ActionScript 2.0 | |
| |
| |
Currency Converter Application Overview | |
| |
| |
Preparing the Flash Document | |
| |
| |
The CurrencyConverter Class | |
| |
| |
Handling Component Events | |
| |
| |
Components Complete | |
| |
| |
| |
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 | |
| |
| |
| |
Distributing Class Libraries | |
| |
| |
Sharing Class Source Files | |
| |
| |
Sharing Classes Without Sharing Source Files | |
| |
| |
Solving Real OOP Problems | |
| |
| |
| |
Design Pattern Examples in ActionScript 2.0 | |
| |
| |
| |
Introduction to Design Patterns | |
| |
| |
Bring on the Patterns | |
| |
| |
| |
The Observer Design Pattern | |
| |
| |
Implementing Observer in ActionScript 2.0 | |
| |
| |
Logger: A Complete Observer Example | |
| |
| |
Memory Management Issues with Observer | |
| |
| |
Beyond Observer | |
| |
| |
| |
The Singleton Design Pattern | |
| |
| |
Implementing Singleton in ActionScript 2.0 | |
| |
| |
The Singleton Pattern in the Logger Class | |
| |
| |
Singleton Versus Class Methods and Class Properties | |
| |
| |
A Warning Against Singletons as Globals | |
| |
| |
On to User Interfaces | |
| |
| |
| |
The Model-View-Controller Design Pattern | |
| |
| |
The General Architecture of MVC | |
| |
| |
A Generalized MVC Implementation | |
| |
| |
An MVC Clock | |
| |
| |
Further Exploration | |
| |
| |
| |
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 Some Place to Some OtherPlace | |
| |
| |
| |
Appendixes | |
| |
| |
| |
ActionScript 2.0 Language Quick Reference | |
| |
| |
| |
Differences from ECMAScript Edition 4 | |
| |
| |
Index | |