Tải bản đầy đủ (.pdf) (588 trang)

ActionScript 3.0 Cookbook pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.46 MB, 588 trang )

ActionScript 3.0 Cookbook

Other resources from O’Reilly
Related titles
ActionScript 3.0 Pocket
Reference
ActionScript 3.0 Design
Patterns
Flash 8 Cookbook

Flash Hacks

Flash 8 Projects for Learning
Animation and
Interactivity
Flash 8: The Missing Manual
Programming Flex 2
oreilly.com
oreilly.com is more than a complete catalog of O’Reilly books.
You’ll also find links to news, events, articles, weblogs, sample
chapters, and code examples.
oreillynet.com is the essential portal for developers interested in
open and emerging technologies, including new platforms, pro-
gramming languages, and operating systems.
Conferences
O’Reilly brings diverse innovators together to nurture the ideas
that spark revolutionary industries. We specialize in document-
ing the latest tools and systems, translating the innovator’s
knowledge into useful skills for those in the trenches. Please


visit conferences.oreilly.com for our upcoming events.
Safari Bookshelf (safari.oreilly.com) is the premier online refer-
ence library for programmers and IT professionals. Conduct
searches across more than 1,000 books. Subscribers can zero in
on answers to time-critical questions in a matter of seconds.
Read the books on your Bookshelf from cover to cover or sim-
ply flip to the page you need. Try it today for free.
ActionScript 3.0 Cookbook

Joey Lott, Darron Schall, and Keith Peters
Beijing

Cambridge

Farnham

Köln

Paris

Sebastopol

Taipei

Tokyo
ActionScript 3.0 Cookbook

by Joey Lott, Darron Schall, and Keith Peters
Copyright © 2007 O’Reilly Media, Inc. All rights reserved.
Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions
are also available for most titles (safari.oreilly.com). For more information, contact our corporate/
institutional sales department: (800) 998-9938 or
Editor:
Chuck Toporek
Production Editor:
Laurel R.T. Ruma
Copyeditor:
Laurel R.T. Ruma
Proofreader:
Ann Atalla
Indexer:
Joe Wizda
Cover Designer:
Karen Montgomery
Interior Designer:
David Futato
Illustrators:
Robert Romano and Jessamyn Read
Printing History:
October 2006: First Edition.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of
O’Reilly Media, Inc. The Cookbook series designations, ActionScript 3.0 Cookbook, the image of a crab-
eating opposum, and related trade dress are trademarks of O’Reilly Media, Inc.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a
trademark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher and authors
assume no responsibility for errors or omissions, or for damages resulting from the use of the

information contained herein.
This book uses RepKover

, a durable and flexible lay-flat binding.
ISBN 10: 0-596-52695-4
ISBN 13: 978-0-596-52695-5
[M]
Adobe Developer Library, a copublishing partnership between O’Reilly Media Inc.
and Adobe Systems, Inc., is the authoritative resource for developers using Adobe
technologies. These comprehensive resources offer learning solutions to help devel-
opers create cutting-edge interactive web applications that can reach virtually any-
one on any platform.
With top-quality books and innovative online resources covering the latest tools for
rich-Internet application development, the Adobe Developer Library delivers expert
training, straight from the source. Topics include ActionScript, Adobe Flex®, Adobe
Flash®, and Adobe Acrobat® software.
Get the latest news about books, online resources, and more at adobedeveloper-
library.com.
vii
Table of Contents
Preface
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xvii
1. ActionScript Basics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1 Creating an ActionScript Project 2
1.2 Customizing the Properties of an Application 3
1.3 Where to Place ActionScript Code 4

1.4 How to Trace a Message 8
1.5 Handling Events 10
1.6 Responding to Mouse and Key Events 12
1.7 Using Mathematical Operators 14
1.8 Checking Equality or Comparing Values 16
1.9 Performing Actions Conditionally 19
1.10 Performing Complex Conditional Testing 24
1.11 Repeating an Operation Many Times 26
1.12 Repeating a Task over Time 30
1.13 Creating Reusable Code 32
1.14 Generalizing a Method to Enhance Reusability 34
1.15 Exiting a Method 36
1.16 Obtaining the Result of a Method 37
1.17 Handling Errors 38
2. Custom Classes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
2.1 Creating a Custom Class 43
2.2 Determining Where to Save a Class 48
2.3 Creating Properties That Behave As Methods 49
2.4 Creating Static Methods and Properties 51
2.5 Creating Subclasses 52
viii | Table of Contents
2.6 Implementing Subclass Versions of Superclass Methods 54
2.7 Creating Constants 56
2.8 Dispatching Events 57
3. Runtime Environment
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.1 Detecting the Player Version 58

3.2 Detecting the Operating System 60
3.3 Checking the Player Type 61
3.4 Checking the System Language 61
3.5 Detecting Display Settings 63
3.6 Scaling the Movie 65
3.7 Changing the Alignment 66
3.8 Hiding the Flash Player’s Menu Items 67
3.9 Detecting the Device’s Audio Capabilities 68
3.10 Detecting the Device’s Video Capabilities 69
3.11 Prompting the User to Change Player Settings 70
3.12 Dealing with System Security 71
4. Numbers and Math
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.1 Representing Numbers in Different Bases 74
4.2 Converting Between Different Number Systems 75
4.3 Rounding Numbers 77
4.4 Inserting Leading or Trailing Zeros or Spaces 79
4.5 Formatting Numbers for Display Without a Mask 83
4.6 Formatting Currency Amounts 84
4.7 Generating a Random Number 86
4.8 Simulating a Coin Toss 88
4.9 Simulating Dice 91
4.10 Simulating Playing Cards 93
4.11 Generating a Unique Number 95
4.12 Converting Angle Measurements 96
4.13 Calculating the Distance Between Two Points 97
4.14 Determining Points Along a Circle 98
4.15 Converting Between Units of Measurement 101
5. Arrays

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
5.1 Adding Elements to the Start or End of an Array 104
5.2 Looping Through an Array 106
5.3 Searching for Matching Elements in an Array 107
5.4 Removing Elements 111
Table of Contents | ix
5.5 Inserting Elements in the Middle of an Array 113
5.6 Converting a String to an Array 114
5.7 Converting an Array to a String 115
5.8 Creating a Separate Copy of an Array 116
5.9 Storing Complex or Multidimensional Data 120
5.10 Sorting or Reversing an Array 123
5.11 Implementing a Custom Sort 127
5.12 Randomizing the Elements of an Array 129
5.13 Getting the Minimum or Maximum Element 131
5.14 Comparing Arrays 131
5.15 Creating an Associative Array 133
5.16 Reading Elements of an Associative Array 135
6. Display List
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
6.1 Adding an Item to the Display List 141
6.2 Removing an Item from the Display List 146
6.3 Moving Objects Forward and Backward 149
6.4 Creating Custom Visual Classes 153
6.5 Creating Simple Buttons 156
6.6 Loading External Images at Runtime 161
6.7 Loading and Interacting with External Movies 165
6.8 Creating Mouse Interactions 168

6.9 Dragging and Dropping Objects with the Mouse 173
7. Drawing and Masking
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
181
7.1 Setting a Line Style 182
7.2 Setting Gradient Line Styles 183
7.3 Drawing a Line 184
7.4 Drawing a Curve 186
7.5 Drawing an Arc 187
7.6 Drawing a Rectangle 187
7.7 Drawing a Circle 189
7.8 Drawing an Ellipse 190
7.9 Drawing a Triangle 191
7.10 Drawing Regular Polygons 192
7.11 Drawing a Star 193
7.12 Filling a Shape with a Solid or Translucent Color 194
7.13 Filling a Shape with a Gradient 195
7.14 Filling a Shape with a Bitmap 197
7.15 Scripting Masks 198
x | Table of Contents
8. Bitmaps
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
8.1 Creating a BitmapData Object 201
8.2 Adding a Bitmap to the Display List 202
8.3 Drawing a Display Object to a Bitmap 203
8.4 Loading an External Image into a Bitmap 204
8.5 Manipulating Pixels 205
8.6 Creating Rectangular Fills 207
8.7 Creating a Flood Fill 208

8.8 Copying Pixels 209
8.9 Copying Channels 211
8.10 Creating Noise 212
8.11 Creating Perlin Noise 214
8.12 Using Threshold 218
8.13 Applying a Filter to a Bitmap 221
8.14 Dissolving Between Two Bitmaps 224
8.15 Scrolling a Bitmap 227
9. Text
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229
9.1 Creating an Outline Around a Text Field 230
9.2 Creating a Background for a Text Field 230
9.3 Making a User Input Field 231
9.4 Making a Password Input Field 232
9.5 Filtering Text Input 233
9.6 Setting a Field’s Maximum Length 234
9.7 Displaying Text 235
9.8 Displaying HTML-Formatted Text 235
9.9 Condensing Whitespace 236
9.10 Sizing Text Fields to Fit Contents 237
9.11 Scrolling Text Programmatically 238
9.12 Responding to Scroll Events 241
9.13 Formatting Text 242
9.14 Formatting User-Input Text 247
9.15 Formatting a Portion of Existing Text 248
9.16 Setting a Text Field’s Font 249
9.17 Embedding Fonts 250
9.18 Creating Text That Can Be Rotated 252
9.19 Displaying Unicode Text 252

9.20 Assigning Focus to a Text Field 253
9.21 Selecting Text with ActionScript 254
Table of Contents | xi
9.22 Setting the Insertion Point in a Text Field 255
9.23 Responding When Text Is Selected or Deselected 256
9.24 Responding to User Text Entry 257
9.25 Adding a Hyperlink to Text 258
9.26 Calling ActionScript from Hyperlinks 260
9.27 Working with Advanced Text Layout 261
9.28 Applying Advanced Anti-Aliasing 264
9.29 Replacing Text 265
9.30 Retrieving a List of System Fonts 265
10. Filters and Transforms
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
266
10.1 Applying Color Changes 266
10.2 Applying Color Tints 267
10.3 Resetting Color 268
10.4 Shearing 269
10.5 Applying Basic Filters 269
10.6 Applying Advanced Filter Effects (Emboss, etc.) 272
10.7 Embossing 274
10.8 Detecting Edges 275
10.9 Sharpening 276
10.10 Making a Digital Negative 276
10.11 Applying Grayscale 277
10.12 Changing Saturation 278
10.13 Changing Brightness 278
10.14 Changing Contrast 279
11. Programmatic Animation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
281
11.1 Moving an Object 282
11.2 Moving an Object in a Specific Direction 283
11.3 Easing 285
11.4 Acceleration 287
11.5 Springs 289
11.6 Using Trigonometry 291
11.7 Applying Animation Techniques to Other Properties 294
12. Strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
298
12.1 Joining Strings 298
12.2 Using Quotes and Apostrophes in Strings 302
12.3 Inserting Special Whitespace Characters 303
12.4 Searching for a Substring 304
xii | Table of Contents
12.5 Extracting a Substring 308
12.6 Parsing a String into Words 311
12.7 Removing and Replacing Characters and Words 315
12.8 Retrieving One Character at a Time 317
12.9 Converting Case 319
12.10 Trimming Whitespace 320
12.11 Reversing a String by Word or by Character 322
12.12 Converting Between Strings and Unicode or ASCII 323
13. Regular Expressions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
327
13.1 Understanding Regular Expression Patterns 328
13.2 Testing Regular Expressions 333

13.3 Looking for Pattern Matches 336
13.4 Removing and Replacing Characters and Words Using Patterns 338
13.5 Creating a Nongreedy Pattern 341
13.6 Validating User Input with Common Patterns 343
14. Dates and Times
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
348
14.1 Finding the Current Date and Time 348
14.2 Retrieving the Date Values 351
14.3 Retrieving the Day or Month Name 352
14.4 Formatting the Date and Time 353
14.5 Formatting Seconds or Milliseconds as Minutes and Seconds 355
14.6 Converting Between DMYHMSM and Epoch Milliseconds 356
14.7 Using Timers 357
14.8 Calculating Elapsed Time or Intervals Between Dates 358
14.9 Parsing a Date from a String 363
15. Programming Sound
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365
15.1 Creating a Sound Object and Loading a Sound 365
15.2 Starting and Stopping a Sound 367
15.3 Setting the Buffer for a Sound 368
15.4 Offsetting the Start of a Sound 369
15.5 Playing a Sound Multiple Times (Looping) 370
15.6 Getting the Size of a Sound File 371
15.7 Reading the ID3 Tag of a Sound File 373
15.8 Find Out When a Sound Finishes Playing 375
15.9 Tracking the Progress of a Playing Sound 377
15.10 Pausing and Restarting a Sound 379
Table of Contents | xiii

15.11 Reading the Level of a Sound 381
15.12 Stopping All Sounds 382
15.13 Reading the Sound Spectrum 383
15.14 Changing the Volume or Pan of a Sound 385
15.15 Creating a Sound Application 386
16. Video
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
392
16.1 Loading and Playing Back Video 392
16.2 Controlling Video Sound 394
16.3 Reading Playback Time 394
16.4 Reading Video Duration 395
16.5 Controlling Playback Time 397
16.6 Scaling Video 398
16.7 Managing and Monitoring Buffering and Loading 399
16.8 Listening for Cue Points 400
16.9 Applying Filters to Video 401
16.10 Pausing and Resuming Video 402
16.11 Stopping Video 402
16.12 Scrubbing Video 403
16.13 Clearing the Video Display 405
16.14 Determining User Bandwidth 405
17. Storing Persistent Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
409
17.1 Creating and Opening a Local Shared Object 409
17.2 Writing Data to a Shared Object 411
17.3 Saving a Local Shared Object 411
17.4 Reading Data from a Shared Object 414
17.5 Removing Data from a Shared Object 415

17.6 Serializing Custom Classes 416
17.7 Sharing Data Between Flash Applications 418
17.8 Controlling the Size of Local Shared Objects 420
18. Communicating with Other Movies
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
422
18.1 Creating Local Connections 423
18.2 Sending Data 427
18.3 Validating Receipt of Communication over Local Connections 430
18.4 Accepting Local Communications from Other Domains 432
xiv | Table of Contents
19. Sending and Loading Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
435
19.1 Loading Variables from a Text File 436
19.2 Loading Variables from a Server-Side Script 440
19.3 Loading a Block of Text (Including HTML and XML) 442
19.4 Checking Load Progress 444
19.5 Accessing Data Being Downloaded 446
19.6 Sending Data to a Server-Side Script 447
19.7 Sending Variables and Handling a Returned Result 449
20. XML
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
452
20.1 Understanding XML Structure (Reading and Writing XML) 454
20.2 Creating an XML Object 456
20.3 Adding Elements to an XML Object 458
20.4 Adding Text Nodes to an XML Object 461
20.5 Adding Attributes to an XML Element 463
20.6 Reading Elements in an XML Tree 464

20.7 Finding Elements by Name 465
20.8 Reading Text Nodes and Their Values 468
20.9 Reading an Element’s Attributes 470
20.10 Removing Elements, Text Nodes, and Attributes 473
20.11 Loading XML 474
20.12 Loading XML from Different Domains 475
20.13 Sending XML 476
20.14 Searching XML 482
20.15 Using HTML and Special Characters in XML 485
21. Web Services and Flash Remoting
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
487
21.1 Calling Web Services Methods 488
21.2 Handling Web Services Responses 489
21.3 Handling Web Services Errors 490
21.4 Calling Flash Remoting Methods 490
21.5 Handling Flash Remoting Responses 492
22. Building Integrated Applications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
494
22.1 Calling JavaScript Functions 494
22.2 Calling ActionScript Functions 495
22.3 Passing Parameters from HTML 497
Table of Contents | xv
23. File Management
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
499
23.1 Downloading Files 499
23.2 Detecting When a User Selects a File to Upload 502
23.3 Monitoring Download Progress 503

23.4 Browsing for Files 503
23.5 Filtering Files That Display in the Browser Window 504
23.6 Detecting When the User Has Selected a File to Upload 506
23.7 Uploading Files 506
23.8 Monitoring File Upload Progress 507
24. Socket Programming
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
509
24.1 Connecting to a Socket Server 510
24.2 Sending Data 513
24.3 Receiving Data 515
24.4 Handshaking with a Socket Server 519
24.5 Disconnecting from a Socket Server 523
24.6 Handling Socket Errors 524
Appendix. Unicode Escape Sequences for Latin 1 Characters
. . . . . . . . . . . . . . . . .
527
Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
533
xvii
Preface1
The ActionScript 3.0 Cookbook is written with all levels of ActionScript developers in
mind—people like you who want practical solutions to common problems. Keep this
book next to your computer to tackle programming challenges. It is filled with excit-
ing yet accessible and practical examples, solutions, and insights into the situations
that Flash and ActionScript developers are sure to encounter.
The book is in the style of the classic O’Reilly Cookbook series format, in which
each recipe presents the problem, the solution, and a discussion of the solution. You

can quickly locate the recipe that most closely matches your situation and get the
solution without having to read the whole book to understand the underlying code.
The Discussion sections of each recipe offer a deeper analysis of how the solution
works and possible design choices and ramifications. So you get the best of both
worlds—quick and easy access to the answers you want and deeper insights into the
nature of both the problem and the solution. The ActionScript 3.0 Cookbook helps
you develop your understanding of concepts by applying them in real situations.
What’s Not in This Book
This book contains a lot of information on a wide range of topics. It covers the
gamut of client-side ActionScript. Every recipe is presented in the context of an
applied solution or example. Although the book discusses some minimal theory, it is
not intended as an introduction to any of these subjects. There are many good books,
references, and documents that discuss ActionScript in a comprehensive fashion. The
ActionScript 3.0 Cookbook is not designed to be that sort of book. It is intentionally
designed in a particular format to help you with solutions to specific problems.
Compatibility
As the title of the book says, this is the ActionScript 3.0 Cookbook. As such, all of the
code examples in this book are based on ActionScript 3.0 and only compatible work
xviii
|
Preface
with products that support ActionScript 3.0. Flex 2.0 and Flash 9 allow you to
author ActionScript 3.0 content. Flash Player 9 supports ActionScript 3.0. If you are
using a product that does not support ActionScript 3.0, then the code in this book is
not likely to work.
Flash Platform Naming Conventions
ActionScript 3.0 is an important part of the Flash Platform. The Flash Platform is
inclusive of many related technologies centering on the Flash Player. There are so
many Flash Platform technologies these days that it can be difficult to keep track of
all of them. To further complicate matters, many of the terminology are used very

informally, generically, and even incorrectly by many developers. Although we don’t
take a harsh view of such informal use of terminology, we do want to be as clear and
precise as possible when discussing these technologies throughout this book; there-
fore, we use terminology in very specific ways. Table P-1 lists the terms we use and
their meanings.
The Code
This book contains a lot of ActionScript 3.0 (or more colloquially, code). Many reci-
pes offer suggested custom classes that we have found to be invaluable. We trust you
will find them useful as well.
You can download the complete ActionScript 3.0 libraries from http://www.
rightactionscript.com/ascb. Once you’ve downloaded the library files, you’ll need to
add them to the classpath for your projects. Directions for setting your ActionScript
3.0 classpath are also found on that web site.
Table P-1. Flash naming conventions used in this book
Name Meaning
Flex framework The library of ActionScript classes that ship as part of the Flex SDK and Flex Builder.
Flex Builder The Adobe IDE for authoring Flex applications.
Flex SDK The compiler and Flex framework used to author Flex applications without Flex Builder.
Flex A technology usedtoauthor SWF filesfromMXML documents andActionScriptfiles. Unless aversion
number follows, all mentions of Flex in this book refer to Flex 2.0.
Flash Player The deploymentplatform forSWFfilespublished from Flashor Flex.Unless a versionnumber follows,
all mentions of Flash Player in this book refer to Flash Player 9.
Flash The authoringtoolused toauthor SWF files. Unlessa versionnumber follows, all mentionsof Flash in
this book refer to Flash 9.
Preface
|
xix
Audience for This Book
Is this book for you? We surely hope it is. But to be sure, let’s review the prerequi-
sites and summary of the goals of this book.

What You’ll Need to Know
We assume you are already familiar with the product or products you are using to
author Flash Player content. This book won’t discuss Flex SDK, Flex Builder, or
Flash basics. If you don’t yet know how to compile a basic project or how to deploy
a project, then you’ll probably get the most from this book if you first learn the
basics of working with the product or products you’re using.
You’ll also want to learn programming basics before reading this book. Although we
talk about a lot of basic programming concepts in the context of how to solve spe-
cific problems (e.g., how to loop through the elements of an array) you won’t find a
step-by-step tutorial in this book with regard to basic programming skills.
Who This Book Is For
This book is for all ActionScript 3.0 developers. We hope there’s something in this
book for everyone: from novice to expert. If you want to quickly find a solution, this
is the perfect book for you.
Who This Book Isn’t For
This book discusses ActionScript 3.0, which is a language that runs within Flash
Player. For the most part, this book does not discuss server-side solutions or other
client-side languages in detail. For example, although this book does discuss the
ActionScript code for working with Flash Remoting (a technology for making remote
procedure calls) complete with examples, it does not explain how to write the corre-
sponding server-side code (e.g., a ColdFusion component). Likewise, this book dis-
cusses how to use ActionScript to call JavaScript functions, yet we don’t explain how
to write JavaScript. If you are looking for an ActionScript 3.0 book, then this is it;
but if you’re looking for a book that discusses non-ActionScript topics in detail, this
isn’t the book you’re looking for.
How This Book Is Organized
This book consists of the following chapters and appendix.
Chapter 1, ActionScript Basics
Basic programming tasks such as looping statements, timers, etc.
xx

|
Preface
Chapter 2, Custom Classes
Writing custom classes for use with ActionScript 3.0.
Chapter 3, Runtime Environment
Getting information about the system, device, and player version in use, as well
as security functions.
Chapter 4, Numbers and Math
Working with numbers in ActionScript, including parsing numbers from strings,
converting numbers to formatted strings, and using different bases for numbers.
Chapter 5, Arrays
Working with indexed collections of data called arrays: from adding and remov-
ing elements to sorting.
Chapter 6, Display List
Using display objects to display visual data on the screen.
Chapter 7, Drawing and Masking
Programmatic drawing and masking using ActionScript.
Chapter 8, Bitmaps
Working with low-level bitmap data.
Chapter 9, Text
Everything text, from displaying text to loading text to formatting text.
Chapter 10, Filters and Transforms
Applying effects to display objects by using transforms (color and geometric)
and filters such as drop shadows, bevels, and even emboss and edge detection
effects.
Chapter 11, Programmatic Animation
Animating display objects using ActionScript.
Chapter 12, Strings
Working with string data: from finding substrings to working with Unicode.
Chapter 13, Regular Expressions

Using native regular expressions to match patterns in strings.
Chapter 14, Dates and Times
Working with dates and times, including converting between timezones, using
timers, and formatting dates.
Chapter 15, Programming Sound
Working with audio, including loading MP3s, reading ID3 tags, and displaying
sound waves.
Chapter 16, Video
Programming for Flash video.
Preface
|
xxi
Chapter 17, Storing Persistent Data
Using shared objects to store data on the client computer.
Chapter 18, Communicating with Other Movies
Using local connections to communicate between content running in Flash
Player instance on the same computer.
Chapter 19, Sending and Loading Data
Enabling two-way communication with a web server and the Flash Player.
Chapter 20, XML
Working with XML using the E4X support in Flash Player.
Chapter 21, Web Services and Flash Remoting
Working with remote procedure calls using web services and Flash Remoting
technologies.
Chapter 22, Building Integrated Applications
Using the native Flash Player programming interface for integrating Flash Player
content with the host application, such as calling JavaScript functions from
ActionScript or calling ActionScript functions from JavaScript.
Chapter 23, File Management
Uploading and downloading files.

Chapter 24, Socket Programming
Working with XML and binary sockets for low-latency applications.
Appendix, Unicode Escape Sequences for Latin 1 Characters
This appendix lists the characters in the Latin 1 character repertoire, with Uni-
code equivalents in the range of
U+0000 to U+00FF (that is, C0 Controls, Basic
Latin, C1 Controls, and Latin 1 Supplemental).
How to Use This Book
Think of this book like a friend and a counselor. Don’t put it on a shelf. Keep it on
your desk where you can consult it often. When you are uncertain as to how some-
thing works or how to approach a specific programming issue pick up the book and
flip to the relevant recipe(s). We have written this book in a format so that you can
get answers to specific questions quickly. And since it’s a book you don’t ever have
to worry that it will laugh at you for asking questions. No question is too big or too
small.
Although you can read the book from cover to cover, we encourage you to use this
book when you need an answer. Rather than teaching you a bunch of theory, this
book intends to help you solve problems and accomplish tasks. This book is meant
for field work, not the research lab.
xxii
|
Preface
Conventions Used in This Book
The following typographical conventions are used in this book:
Plain text
Indicates menu titles, menu options, menu buttons, and keyboard accelerators
(such as Alt and Ctrl).
Italic
Indicates new terms, URLs, email addresses, filenames, file extensions, path-
names, directories, and Unix utilities.

Constant width
Indicates commands, options, switches, variables, attributes, keys, functions,
types, classes, namespaces, methods, modules, properties, parameters, values,
objects, events, event handlers, XML tags, HTML tags, macros, the contents of
files, or the output from commands.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values.
When referring to properties and methods of objects and classes, the following con-
ventions are used:
• Class-level constants are shown with the both the class name and property in
constant width because they should both be entered verbatim. For example,
Event.COMPLETE.
• Instance-level properties are shown with the class or object instance in
constant
width italic
because they should be replaced by a specific instance. The prop-
erty itself is shown in
constant width and should be entered as shown. For
example,
Button.enabled.
• Method and function names, and the class or object to which they pertain, are
always shown in italics and followed by parentheses, as in BitmapData.clone( ).
Refer to the online help to know whether to include the class name literally (i.e.,
if it is a so-called static method), as in String.fromCharCode( ), or replace it with
an instance name, such as exampleBitmap.clone( ).
• For brevity, we often omit the class name when discussing a property or method of
a class. For example, if discussing the
htmlText property of the TextField class,

when we say “set the
htmlText property,” you should infer from context that we
mean, “set the
exampleTextField.htmlText property, where exampleTextField is the
identifier for your particular text field.”
Preface
|
xxiii
In addition, the following formats are used to grab your attention and relieve the
tedium of what could otherwise be monotonous reading:
This icon signifies a tip, suggestion, or general advice.
This icon indicates a warning or caution.
Using Code Examples
ActionScript 3.0 Cookbook is here to help you get your job done. In general, you may
use the code in this book in your programs and documentation. You do not need to
contact us for permission unless you’re reproducing a significant portion of the code.
For example, writing a program that uses several chunks of code from this book does
not require permission. Selling or distributing a CD-ROM of examples from O’Reilly
books does require permission. Answering a question by citing this book and quoting
example code does not require permission. Incorporating a significant amount of exam-
ple code from this book into your product’s documentation does require permission.
We appreciate, but do not require, attribution. An attribution usually includes the title,
author, publisher, and ISBN. For example: “ActionScript 3.0 Cookbook, by Joey Lott,
Darron Schall, and Keith Peters. Copyright 2007 O’Reilly Media, Inc., 978-0-596-
52695-5.”
If you feel your use of code examples falls outside fair use or the permission given
above, feel free to contact us at
O’Reilly Cookbooks
Looking for the right ingredients to solve a programming problem? Look no further
than O’Reilly Cookbooks. Each cookbook contains hundreds of programming reci-

pes, and includes hundreds of scripts, programs, and command sequences you can
use to solve specific problems.
The recipes you’ll find in an O’Reilly Cookbook follow a simple formula:
Problem
Each Problem addressed in an O’Reilly Cookbook is clearly stated, specific, and
practical.
Solution
The Solution is easy to understand and implement.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×