Essential ActionScript 3.0
By
Colin Moock
June 2007
Pages: 946
| Table of Contents
| Index
| Sample Chapter
Table of Contents
-
ActionScript from the Ground Up
-
Chapter 1 Core Concepts
- Tools for Writing ActionScript Code
- Flash Client Runtime Environments
- Compilation
- Quick Review
- Classes and Objects
- Creating a Program
- Packages
- Defining a Class
- Virtual Zoo Review
- Constructor Methods
- Creating Objects
- Variables and Values
- Constructor Parameters and Arguments
- Expressions
- Assigning One Variable's Value to Another
- An Instance Variable for Our Pet
- Instance Methods
- Members and Properties
- Virtual Zoo Review
- Break Time!
-
Chapter 2 Conditionals and Loops
- Conditionals
- Loops
- Boolean Logic
- Back to Classes and Objects
-
Chapter 3 Instance Methods Revisited
- Omitting the this Keyword
- Bound Methods
- Using Methods to Examine and Modify an Object's State
- Get and Set Methods
- Handling an Unknown Number of Parameters
- Up Next: Class-Level Information and Behavior
-
Chapter 4 Static Variables and Static Methods
- Static Variables
- Constants
- Static Methods
- Class Objects
- C++ and Java Terminology Comparison
- On to Functions
-
Chapter 5 Functions
- Package-Level Functions
- Nested Functions
- Source-File-Level Functions
- Accessing Definitions from Within a Function
- Functions as Values
- Function Literal Syntax
- Recursive Functions
- Using Functions in the Virtual Zoo Program
- Back to Classes
-
Chapter 6 Inheritance
- A Primer on Inheritance
- Overriding Instance Methods
- Constructor Methods in Subclasses
- Preventing Classes from Being Extended and Methods from Being Overridden
- Subclassing Built-in Classes
- The Theory of Inheritance
- Abstract Not Supported
- Using Inheritance in the Virtual Zoo Program
- Virtual Zoo Program Code
- It's Runtime!
-
Chapter 7 Compiling and Running a Program
- Compiling with the Flash Authoring Tool
- Compiling with Flex Builder 2
- Compiling with mxmlc
- Compiler Restrictions
- The Compilation Process and the Classpath
- Strict-Mode Versus Standard-Mode Compilation
- The Fun's Not Over
-
Chapter 8 Datatypes and Type Checking
- Datatypes and Type Annotations
- Untyped Variables, Parameters, Return Values, and Expressions
- Strict Mode's Three Special Cases
- Warnings for Missing Type Annotations
- Detecting Reference Errors at Compile Time
- Casting
- Conversion to Primitive Types
- Default Variable Values
- null and undefined
- Datatypes in the Virtual Zoo
- More Datatype Study Coming Up
-
Chapter 9 Interfaces
- The Case for Interfaces
- Interfaces and Multidatatype Classes
- Interface Syntax and Use
- Another Multiple-Type Example
- More Essentials Coming
-
Chapter 10 Statements and Operators
- Statements
- Operators
- Up Next: Managing Lists of Information
-
Chapter 11 Arrays
- What Is an Array?
- The Anatomy of an Array
- Creating Arrays
- Referencing Array Elements
- Determining the Size of an Array
- Adding Elements to an Array
- Removing Elements from an Array
- Checking the Contents of an Array with the toString( ) Method
- Multidimensional Arrays
- On to Events
-
Chapter 12 Events and Event Handling
- ActionScript Event Basics
- Accessing the Target Object
- Accessing the Object That Registered the Listener
- Preventing Default Event Behavior
- Event Listener Priority
- Event Listeners and Memory Management
- Custom Events
- Type Weakness in ActionScript's Event Architecture
- Handling Events Across Security Boundaries
- What's Next?
-
Chapter 13 Exceptions and Error Handling
- The Exception-Handling Cycle
- Handling Multiple Types of Exceptions
- Exception Bubbling
- The finally Block
- Nested Exceptions
- Control-Flow Changes in try/catch/finally
- Handling a Built-in Exception
- More Gritty Work Ahead
-
Chapter 14 Garbage Collection
- Eligibility for Garbage Collection
- Incremental Mark and Sweep
- Disposing of Objects Intentionally
- Deactivating Objects
- Garbage Collection Demonstration
- On to ActionScript Backcountry
-
Chapter 15 Dynamic ActionScript
- Dynamic Instance Variables
- Dynamically Adding New Behavior to an Instance
- Dynamic References to Variables and Methods
- Using Dynamic Instance Variables to Create Lookup Tables
- Using Functions to Create Objects
- Using Prototype Objects to Augment Classes
- The Prototype Chain
- Onward!
-
Chapter 16 Scope
- Global Scope
- Class Scope
- Static Method Scope
- Instance Method Scope
- Function Scope
- Scope Summary
- The Internal Details
- Expanding the Scope Chain via the with Statement
- On to Namespaces
-
Chapter 17 Namespaces
- Namespace Vocabulary
- ActionScript Namespaces
- Creating Namespaces
- Using a Namespace to Qualify Variable and Method Definitions
- Qualified Identifiers
- A Functional Namespace Example
- Namespace Accessibility
- Qualified-Identifier Visibility
- Comparing Qualified Identifiers
- Assigning and Passing Namespace Values
- Open Namespaces and the use namespace Directive
- Namespaces for Access-Control Modifiers
- Applied Namespace Examples
- Final Core Topics
-
Chapter 18 XML and E4X
- Understanding XML Data as a Hierarchy
- Representing XML Data in E4X
- Creating XML Data with E4X
- Accessing XML Data
- Processing XML with for-each-in and for-in
- Accessing Descendants
- Filtering XML Data
- Traversing XML Trees
- Changing or Creating New XML Content
- Loading XML Data
- Working with XML Namespaces
- Converting XML and XMLList to a String
- Determining Equality in E4X
- More to Learn
-
Chapter 19 Flash Player Security Restrictions
- What's Not in This Chapter
- The Local Realm, the Remote Realm, and Remote Regions
- Security-Sandbox-Types
- Security Generalizations Considered Harmful
- Restrictions on Loading Content, Accessing Content as Data, Cross-Scripting, and Loading Data
- Socket Security
- Example Security Scenarios
- Choosing a Local Security-Sandbox-Type
- Distributor Permissions (Policy Files)
- Creator Permissions (allowDomain( ))
- Import Loading
- Handling Security Violations
- Security Domains
- Two Common Security-Related Development Issues
- On to !
-
Display and Interactivity
-
Chapter 20 The Display API and the Display List
- Display API Overview
- The Display List
- Containment Events
- Custom Graphical Classes
- Go with the Event Flow
-
Chapter 21 Events and Display Hierarchies
- Hierarchical Event Dispatch
- Event Dispatch Phases
- Event Listeners and the Event Flow
- Using the Event Flow to Centralize Code
- Determining the Current Event Phase
- Distinguishing Events Targeted at an Object from Events Targeted at That Object's Descendants
- Stopping an Event Dispatch
- Event Priority and the Event Flow
- Display-Hierarchy Mutation and the Event Flow
- Custom Events and the Event Flow
- On to Input Events
-
Chapter 22 Interactivity
- Mouse-Input Events
- Focus Events
- Keyboard-Input Events
- Text-Input Events
- Flash Player-Level Input Events
- From the Program to the Screen
-
Chapter 23 Screen Updates
- Scheduled Screen Updates
- Post-Event Screen Updates
- Redraw Region
- Optimization with the Event.RENDER Event
- Let's Make It Move!
-
Chapter 24 Programmatic Animation
- No Loops
- Animating with the ENTER_FRAME Event
- Animating with the TimerEvent.TIMER Event
- Choosing Between Timer and Event.ENTER_FRAME
- A Generalized Animator
- Velocity-Based Animation
- Moving On to Strokes 'n' Fills
-
Chapter 25 Drawing with Vectors
- Graphics Class Overview
- Drawing Lines
- Drawing Curves
- Drawing Shapes
- Removing Vector Content
- Example: An Object-Oriented Shape Library
- From Lines to Pixels
-
Chapter 26 Bitmap Programming
- The BitmapData and Bitmap Classes
- Pixel Color Values
- Creating a New Bitmap Image
- Loading an External Bitmap Image
- Examining a Bitmap
- Modifying a Bitmap
- Copying Graphics to a BitmapData Object
- Applying Filters and Effects
- Freeing Memory Used by Bitmaps
- Words, Words, Words
-
Chapter 27 Text Display and Input
- Creating and Displaying Text
- Modifying a Text Field's Content
- Formatting Text Fields
- Fonts and Text Rendering
- Missing Fonts and Glyphs
- Determining Font Availability
- Determining Glyph Availability
- Embedded-Text Rendering
- Text Field Input
- Text Fields and the Flash Authoring Tool
- Loading . . . Please Wait . . .
-
Chapter 28 Loading External Display Assets
- Using Loader to Load Display Assets at Runtime
- Compile-Time Type-Checking for Runtime-Loaded Assets
- Accessing Assets in Multiframe .swf Files
- Instantiating a Runtime-Loaded Asset
- Using Socket to Load Display Assets at Runtime
- Removing Runtime Loaded .swf Assets
- Embedding Display Assets at Compile Time
- On to
-
Applied ActionScript Topics
-
Chapter 29 ActionScript and the Flash Authoring Tool
- The Flash Document
- Timelines and Frames
- Timeline Scripting
- The Document Class
- Symbols and Instances
- Linked Classes for Movie Clip Symbols
- Accessing Manually Created Symbol Instances
- Accessing Manually Created Text
- Programmatic Timeline Control
- Instantiating Flash Authoring Symbols via ActionScript
- Instance Names for Programmatically Created Display Objects
- Linking Multiple Symbols to a Single Superclass
- The Composition-Based Alternative to Linked Classes
- Preloading Classes
- Up Next: Using the Flex Framework
-
Chapter 30 A Minimal MXML Application
- The General Approach
- A Real UI Component Example
- Sharing with Your Friends
-
Chapter 31 Distributing a Class Library
- Sharing Class Source Files
- Distributing a Class Library as a .swc File
- Distributing a Class Library as a .swf File
- But Is It Really Over?
-
Appendix A The Final Virtual Zoo
-
Colophon
Return to Essential ActionScript 3.0