MACROMEDIA FLASH 8-FLASH, FLASH 8-LEARNING ACTIONSCRIPT 2.0 IN FLASH User manual

  • Hello! I am an AI chatbot trained to assist you with the MACROMEDIA FLASH 8-FLASH User manual. I’ve already reviewed the document and can help you find the information you need or explain it in simple terms. Just ask your questions, and providing more details will help me assist you more effectively!
Learning ActionScript 2.0 in Flash
Trademarks
1 Step RoboPDF, ActiveEdit, ActiveTest, Authorware, Blue Sky Software, Blue Sky, Breeze, Breezo, Captivate, Central,
ColdFusion, Contribute, Database Explorer, Director, Dreamweaver, Fireworks, Flash, FlashCast, FlashHelp, Flash Lite,
FlashPaper, Flash Video Encoder, Flex, Flex Builder, Fontographer, FreeHand, Generator, HomeSite, JRun, MacRecorder,
Macromedia, MXML, RoboEngine, RoboHelp, RoboInfo, RoboPDF, Roundtrip, Roundtrip HTML, Shockwave, SoundEdit,
Studio MX, UltraDev, and WebHelp are either registered trademarks or trademarks of Macromedia, Inc. and may be registered in
the United States or in other jurisdictions including internationally. Other product names, logos, designs, titles, words, or phrases
mentioned within this publication may be trademarks, service marks, or trade names of Macromedia, Inc. or other entities and
may be registered in certain jurisdictions including internationally.
Third-Party Information
This guide contains links to third-party websites that are not under the control of Macromedia, and Macromedia is not
responsible for the content on any linked site. If you access a third-party website mentioned in this guide, then you do so at your
own risk. Macromedia provides these links only as a convenience, and the inclusion of the link does not imply that Macromedia
endorses or accepts any responsibility for the content on those third-party sites.
Speech compression and decompression technology licensed from Nellymoser, Inc. (www.nellymoser.com).
Sorenson™ Spark™ video compression and decompression technology licensed from
Sorenson Media, Inc.
Opera ® browser Copyright © 1995-2002 Opera Software ASA and its suppliers. All rights reserved.
Macromedia Flash 8 video is powered by On2 TrueMotion video technology. © 1992-2005 On2 Technologies, Inc. All Rights
Reserved. http://www.on2.com.
Visual SourceSafe is a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.
Copyright © 2005 Macromedia, Inc. All rights reserved. This manual may not be copied, photocopied, reproduced,
translated, or converted to any electronic or machine-readable form in whole or in part without written approval from
Macromedia, Inc. Notwithstanding the foregoing, the owner or authorized user of a valid copy of the software with which
this manual was provided may print out one copy of this manual from an electronic version of this manual for the sole
purpose of such owner or authorized user learning to use such software, provided that no part of this manual may be
printed out, reproduced, distributed, resold, or transmitted for any other purposes, including, without limitation,
commercial purposes, such as selling copies of this documentation or providing paid-for support services.
Acknowledgments
Project Management: Sheila McGinn
Writing: Jen deHaan; Peter deHaan, Joey Lott
Managing Editor: Rosana Francescato
Lead Editor: Lisa Stanziano
Editing: Linda Adler, Geta Carlson, Evelyn Eldridge, John Hammett, Mary Kraemer, Noreen Maher, Jessie Wood, Anne Szabla
Production Management: Patrice O’Neill, Kristin Conradi, Yuko Yagi
Media Design and Production: Adam Barnett, Aaron Begley, Paul Benkman. John Francis, Geeta Karmarkar, Masayo Noda,
Paul Rangel, Arena Reed, Mario Reynoso
Special thanks to Jody Bleyle, Mary Burger, Lisa Friendly, Stephanie Gowin, Bonnie Loo, Mary Ann Walsh, Erick Vera, the beta
testers, and the entire Flash and Flash Player engineering and QA teams.
First Edition: September 2005
Macromedia, Inc.
601 Townsend St.
San Francisco, CA 94103
3
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Intended audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
System requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Updating Flash XML files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
About the documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Additional resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chapter 1: What’s New in Flash 8 ActionScript . . . . . . . . . . . . . . 19
New in ActionScript 2.0 and Flash 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Changes to security model for locally installed SWF files. . . . . . . . . . 28
Chapter 2: Writing and Editing ActionScript 2.0 . . . . . . . . . . . . . 31
About ActionScript and events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Organizing ActionScript code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Using the Actions panel and Script window. . . . . . . . . . . . . . . . . . . . . . 35
About the Actions panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
About the Script window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
About coding in the Actions panel and Script window. . . . . . . . . . . . . 38
About Actions panel features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
About behaviors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
About ActionScript publish settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Chapter 3: About ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
What is ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
About choosing between ActionScript 1.0 and ActionScript 2.0 . . . 69
Understanding ActionScript and Flash Player . . . . . . . . . . . . . . . . . . . .70
Chapter 4: Data and Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . 71
About data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
About data types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
About variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Organizing data in objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
About casting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4Contents
Chapter 5: Syntax and Language Fundamentals . . . . . . . . . . . . 113
About syntax, statements, and expressions . . . . . . . . . . . . . . . . . . . . . .114
About dot syntax and target paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
About language punctuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
About constants and keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
About statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
About arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
About operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Chapter 6: Functions and Methods . . . . . . . . . . . . . . . . . . . . . . . 201
About functions and methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Understanding methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Chapter 7: Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
About object-oriented programming and Flash . . . . . . . . . . . . . . . . . .226
Writing custom class files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
About working with custom classes in an application . . . . . . . . . . . . .238
Example: Writing custom classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
Example: Using custom class files in Flash . . . . . . . . . . . . . . . . . . . . . .276
Assigning a class to symbols in Flash . . . . . . . . . . . . . . . . . . . . . . . . . . .279
Compiling and exporting classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Understanding classes and scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
About top-level and built-in classes . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
About working with built-in classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
Chapter 8: Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
About inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
About writing subclasses in Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Using polymorphism in an application . . . . . . . . . . . . . . . . . . . . . . . . . 308
Chapter 9: Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
About interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Creating interfaces as data types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Understanding inheritance and interfaces . . . . . . . . . . . . . . . . . . . . . . 320
Example: Using interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Example: Creating a complex interface . . . . . . . . . . . . . . . . . . . . . . . . .323
Contents 5
Chapter 10: Handling Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Using event handler methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Using event listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Using event listeners with components. . . . . . . . . . . . . . . . . . . . . . . . . 335
Using button and movie clip event handlers. . . . . . . . . . . . . . . . . . . . . 337
Broadcasting events from component instances . . . . . . . . . . . . . . . . 342
Creating movie clips with button states. . . . . . . . . . . . . . . . . . . . . . . . . 342
Event handler scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Scope of the this keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Using the Delegate class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Chapter 11: Working with Movie Clips. . . . . . . . . . . . . . . . . . . . . . 351
About controlling movie clips with ActionScript . . . . . . . . . . . . . . . . . 352
Calling multiple methods on a single movie clip . . . . . . . . . . . . . . . . . 354
Loading and unloading SWF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Changing movie clip position and appearance . . . . . . . . . . . . . . . . . . 357
Dragging movie clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Creating movie clips at runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Adding parameters to dynamically created movie clips. . . . . . . . . . . 364
Managing movie clip depths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
About caching and scrolling movie clips with ActionScript . . . . . . . 369
Using movie clips as masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Handling movie clip events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Assigning a class to a movie clip symbol. . . . . . . . . . . . . . . . . . . . . . . . 378
Initializing class properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Chapter 12: Working with Text and Strings . . . . . . . . . . . . . . . . . 381
About text fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
About loading text and variables into text fields . . . . . . . . . . . . . . . . . 392
Using fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
About font rendering and anti-alias text . . . . . . . . . . . . . . . . . . . . . . . . 406
About text layout and formatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414
Formatting text with Cascading Style Sheet styles . . . . . . . . . . . . . . .421
Using HTML-formatted text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Example: Creating scrolling text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
About strings and the String class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
6Contents
Chapter 13: Animation, Filters, and Drawings . . . . . . . . . . . . . . 469
Scripting animation with ActionScript 2.0 . . . . . . . . . . . . . . . . . . . . . .470
About bitmap caching, scrolling, and performance . . . . . . . . . . . . . 480
About the Tween and TransitionManager classes . . . . . . . . . . . . . . . 481
Using filter effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Working with filters using ActionScript . . . . . . . . . . . . . . . . . . . . . . . . 505
Manipulating filter effects with code . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Creating bitmaps with the BitmapData class . . . . . . . . . . . . . . . . . . . .534
About blending modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
About operation order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Drawing with ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Understanding scaling and slice guides . . . . . . . . . . . . . . . . . . . . . . . . .556
Chapter 14: Creating Interaction with ActionScript . . . . . . . . . . 561
About events and interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562
Controlling SWF file playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562
Creating interactivity and visual effects . . . . . . . . . . . . . . . . . . . . . . . . .566
Creating runtime data bindings using ActionScript . . . . . . . . . . . . . . .579
Deconstructing a sample script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .588
Chapter 15: Working with Images, Sound, and Video . . . . . . . . 591
About loading and working with external media . . . . . . . . . . . . . . . . 592
Loading external SWF and image files. . . . . . . . . . . . . . . . . . . . . . . . . 593
About loading and using external MP3 files . . . . . . . . . . . . . . . . . . . . .598
Assigning linkage to assets in the library . . . . . . . . . . . . . . . . . . . . . . . 602
About using FLV video. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
About creating progress animations for media files. . . . . . . . . . . . . . .624
Chapter 16: Working with External Data . . . . . . . . . . . . . . . . . . 633
Sending and loading variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .634
Using HTTP to connect to server-side scripts . . . . . . . . . . . . . . . . . . .638
About file uploading and downloading . . . . . . . . . . . . . . . . . . . . . . . . . 644
About XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .652
Sending messages to and from Flash Player . . . . . . . . . . . . . . . . . . . .663
About the External API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667
Chapter 17: Understanding Security. . . . . . . . . . . . . . . . . . . . . . .677
About compatibility with previous Flash Player security models . . . 677
About local file security and Flash Player. . . . . . . . . . . . . . . . . . . . . . . .679
About domains, cross-domain security, and SWF files . . . . . . . . . . 694
Server-side policy files for permitting access to data . . . . . . . . . . . . .702
HTTP to HTTPS protocol access between SWF files . . . . . . . . . . . . 707
Contents 7
Chapter 18: Debugging Applications . . . . . . . . . . . . . . . . . . . . . . 711
Debugging your scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Using the Output panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Chapter 19: Best Practices and Coding Conventions for
ActionScript 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
Using comments in your code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
ActionScript coding conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
ActionScript and Flash Player optimization . . . . . . . . . . . . . . . . . . . . . 762
Formatting ActionScript syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Appendix A: Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . .773
Appendix B: Deprecated Flash 4 operators . . . . . . . . . . . . . . . 779
Appendix C: Keyboard Keys and Key Code Values . . . . . . . . . . 781
Appendix D: Writing Scripts for
Earlier Versions of Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . .787
About targeting earlier versions of Flash Player . . . . . . . . . . . . . . . . . 787
Using Flash 8 to create content for Flash Player 4 . . . . . . . . . . . . . . 788
Appendix E: Object-Oriented Programming with
ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
About ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Creating a custom object in ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . 794
Assigning methods to a custom object in ActionScript 1.0. . . . . . . . 795
Defining event handler methods in ActionScript 1.0 . . . . . . . . . . . . . 796
Creating inheritance in ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . 798
Adding getter/setter properties to objects in ActionScript 1.0. . . . . 800
Using Function object properties in ActionScript 1.0. . . . . . . . . . . . . .801
Appendix F: Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
8Contents
9
Introduction
Macromedia Flash Basic 8 and Macromedia Flash Professional 8 are the professional standard
authoring tools for producing high-impact web experiences. ActionScript is the language you
use to add interactivity to Flash applications, whether your applications are simple animated
SWF files or more complex rich Internet applications. You dont have to use ActionScript to
use Flash, but if you want to provide basic or complex user interactivity, work with objects
other than those built into Flash (such as buttons and movie clips), or otherwise turn a SWF
file into a more robust user experience, you’ll probably want to use ActionScript.
For more information, see the following topics:
Intended audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Updating Flash XML files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
System requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
About the documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Additional resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Intended audience
This manual assumes that you have already installed Flash Basic 8 or Flash Professional 8 and
know how to use the user interface.You should know how to place objects on the Stage and
manipulate them in the Flash authoring environment. If you have used a scripting language
before, ActionScript will seem familiar. But if youre new to programming, ActionScript basics
are easy to learn. You can start with simple commands and build more complexity as you
progress. You can add a lot of interactivity to your files without having to learn (or write) a lot
of code.
10 Introduction
System requirements
ActionScript 2.0 does not have any system requirements in addition to Flash 8.
This manual assumes that you are using the default publishing settings for your Flash files:
Flash Player 8 and ActionScript 2.0. If you change either of these settings, explanations and
code samples in the documentation might not work correctly. If you develop applications for
earlier versions of Flash Player, see Appendix D, “Writing Scripts for Earlier Versions of Flash
Player,” on page 787.
Updating Flash XML files
It is important that you always have the latest Flash XML files installed. Macromedia
sometimes introduces features in dot releases (minor releases) of Flash Player. When such a
release is available, you should update your version of Flash to get the latest XML files.
Otherwise, the Flash 8 compiler might generate errors if you use new properties or methods
that were unavailable in the version of Flash Player that came with your Flash installation.
For example, Flash Player 7 (7.0.19.0) contained a new method for the System object,
System.security.loadPolicyFile. To access this method, you must use the Player
Updater installer to update all the Flash players that are installed with Flash. Otherwise, the
Flash compiler displays errors.
Remember that you can install a Player Updater that is one or more major versions ahead of
your version of Flash. By doing this, you will get the XML files that you need but shouldnt
have any compiler errors when you publish to older versions of Flash Player. Sometimes new
methods or properties are available to older versions, and having the latest XML files
minimizes the compiler errors you get when you try to access older methods or properties.
About the documentation
This manual provides an overview of ActionScript syntax and information on how to use
ActionScript when working with different types of objects. For details on the syntax and usage
of every language element, see the ActionScript 2.0 Language Reference.
For more information, see the following topics:
“Learning ActionScript 2.0 book overview” on page 11
About the sample files” on page 14
“Terms used in this document” on page 13
“Copy and paste code” on page 13
About the documentation 11
Learning ActionScript 2.0 book overview
The following list summarizes the contents of this manual:
Chapter 1, “What’s New in Flash 8 ActionScript, describes features that are new in
ActionScript, changes to the compiler and debugger, and the new programming model for
the ActionScript 2.0 language.
Chapter 2, “Writing and Editing ActionScript 2.0, describes features of the ActionScript
editor within Flash that make it easier to write code.
Chapter 3, “About ActionScript, outlines what the ActionScript language is and details
how to choose between which version of ActionScript to use.
Chapter 4, “Data and Data Types, describes the terminology and basic concepts about
data, data types, and variables. You use these concepts throughout the manual.
Chapter 5, “Syntax and Language Fundamentals, describes the terminology and basic
concepts of the ActionScript language. You use these concepts throughout the manual.
Chapter 6, “Functions and Methods, describes how to write different kinds of functions
and methods and how to use them in your application.
Chapter 7, “Classes, describes how to create custom classes and objects in ActionScript.
This chapter also lists the built-in classes in ActionScript and provides a brief overview of
how you use them to access powerful features in ActionScript.
Chapter 8, “Inheritance, describes inheritance in the ActionScript language and describes
how to extend built-in or custom classes.
Chapter 9, “Interfaces, describes how to create and work with interfaces in ActionScript.
Chapter 10, “Handling Events, describes a few different ways to handle events: event
handler methods, event listeners, and button and movie clip event handlers.
Chapter 11, “Working with Movie Clips, describes movie clips and the ActionScript you
can use to control them.
Chapter 12, “Working with Text and Strings, describes the different ways you can control
text and strings in Flash and includes information on text formatting and FlashType
(advanced text rendering, such as anti-alias text).
Chapter 13, “Animation, Filters, and Drawings, describes how to create code-based
animation and images, add filters to objects, and draw using ActionScript.
Chapter 14, “Creating Interaction with ActionScript, describes some simple ways in
which you can create more interactive applications, including controlling when SWF files
play, creating custom pointers, and creating sound controls.
12 Introduction
Chapter 15, “Working with Images, Sound, and Video, describes how to import external
media files, such as bitmap images, MP3 files, Flash Video (FLV) files, and other SWF
files, in your Flash applications. This chapter also provides an overview of how to work
with video in your applications, and how to create progress bar loading animations.
Chapter 16, “Working with External Data, describes how to process data from external
sources using server- or client-side scripts in your applications. This chapter describes how
to integrate data with your applications.
Chapter 17, “Understanding Security, explains security in Flash Player, as it pertains to
working with SWF files locally on your hard disk. This chapter also explains cross-domain
security issues, and how to load data from servers, or across domains.
Chapter 18, “Debugging Applications, describes the ActionScript debugger within Flash
that makes it easier to write applications.
Chapter 19, “Best Practices and Coding Conventions for ActionScript 2.0, explains the
best practices for using Flash and writing ActionScript. This chapter also lists standardized
coding conventions, such as naming variables, and other conventions.
Appendix A, “Error Messages, lists the error messages that the Flash compiler can
generate.
Appendix B, “Deprecated Flash 4 operators, lists all the deprecated Flash 4 operators and
their associativity.
Appendix C, “Keyboard Keys and Key Code Values, lists all the keys on a standard
keyboard and the corresponding ASCII key code values that are used to identify the keys
in ActionScript.
Appendix D, “Writing Scripts for Earlier Versions of Flash Player, provides guidelines to
help you write scripts that are syntactically correct for the player version you are targeting.
Appendix E, “Object-Oriented Programming with ActionScript 1.0, provides
information on using the ActionScript 1.0 object model to write scripts.
Appendix F, “Terminology, lists commonly used terminology when working with the
ActionScript language and provides descriptions for the terms.
This manual explains how to use the ActionScript language. For information on the language
elements themselves, see the ActionScript 2.0 Language Reference.
Typographical conventions
This manual uses the following typographical conventions:
Code font indicates ActionScript code.
About the documentation 13
Bold code font, typically within a procedure, indicates code that you need to modify or
add to code you have already added to your FLA file. In some case, it might be used to
highlight code to look at.
Boldface text indicates data you need to type into the user interface, such as a filename or
instance name.
Italic text indicates a new term defined in the text that follows. In a file path, it might
indicate a value that should be replaced (for example, with a directory name on your own
hard disk).
Terms used in this document
The following terms are used in this manual:
You refers to the developer who is writing a script or application.
The user refers to the person who is running your scripts and applications.
Compile time is the time at which you publish, export, test, or debug your document.
Runtime is the time at which your script is running in Flash Player.
ActionScript terms such as method and object are defined in Appendix F, “Terminology,” on
page 803.
Copy and paste code
When you paste ActionScript from the Help panel into your FLA or ActionScript file, you
have to be careful about special characters. Special characters include special quotation marks
(also called curly quotation marks or smart quotation marks). These characters are not
interpreted by the ActionScript editor, so your code throws an error if you try to compile it
in Flash.
You can determine that your quotation mark characters are special characters if they do not
color-code correctly. That is, if all your strings do not change in color in the code editor, you
need to replace the special characters with regular straight quotation mark characters. If you
type a single or double quotation mark character directly into the ActionScript editor, you
always type a straight quotation mark character. The compiler (when you test or publish a
SWF file) throws an error and lets you know if there are the wrong kind (special quotation
marks or curly quotation marks) of characters in your code.
NOTE
You might also encounter special quotation marks if you paste ActionScript from other
locations, such as a web page or a Microsoft Word document.
14 Introduction
Be cautious of proper line breaks when you copy and paste code. If you paste your code from
some locations, the line of code might break in an improper location. Make sure that the color
coding of your syntax is correct in the ActionScript editor if you think line breaks might be a
problem. You might want to compare your code in the Actions panel to that in the Help panel
to see if it matches. Try turning on Word Wrap in the ActionScript editor to help solve
surplus line breaks in your code (select View > Word Wrap in the Script window, or Word
Wrap from the Actions panel pop-up menu.)
Additional resources
In addition to this manual about ActionScript, there are manuals on other Flash topics, such
as components and Macromedia Flash Lite. You can access each manual in the Help panel
(Help > Flash Help), by viewing the default Table of Contents. Click the Clear button to see
each manual thats available; for more information, see “Where to find documentation on
other subjects” on page 17.
For more information about other available resources, see the following topics:
About the sample files” on page 14
“Where to find PDF files or printed documentation” on page 15
About LiveDocs” on page 15
Additional online resources” on page 16
“Where to find documentation on other subjects” on page 17
About the sample files
There are numerous ActionScript-based sample files available that install with Flash. These
sample files show you how code works in a FLA file; this is often a useful learning tool. The
chapters in this manual often reference these files, but we recommend that you also check out
the sample files folder on your hard disk.
The sample files include application FLA files that use common Flash functionality installed
with Flash. These applications were designed to introduce new Flash developers to the
capabilities of Flash applications, as well as show advanced developers how Flash features work
in context.
Additional resources 15
You can find the ActionScript-focused sample source files in the Samples folder on your
hard disk.
In Windows, browse to boot drive\Program Files\Macromedia\Flash 8\
Samples and Tutorials\Samples\ActionScript\.
On the Macintosh, browse to Macintosh HD/Applications/Macromedia Flash 8/
Samples and Tutorials/Samples/ActionScript/.
You might find the following components-focused sample files useful, because they contain a
lot of ActionScript code. Theyre also in the Samples folder on your hard disk:
In Windows, browse to boot drive\Program Files\Macromedia\Flash 8\
Samples and Tutorials\Samples\Components\.
On the Macintosh, browse to Macintosh HD/Applications/Macromedia Flash 8/
Samples and Tutorials/Samples/Components/.
You can also find additional sample files for download on the Internet. The following web
page contains links and descriptions of additional sample files: www.macromedia.com/go/
flash_samples/.
Where to find PDF files or printed documentation
If you prefer to read documentation in printed format, the PDF versions of each Help manual
are available for downloading. Go to www.macromedia.com/support/documentation/ and
select the product youre interested in. You can view or download the PDF or link to the
LiveDocs version of the manual.
Often, you can also purchase printed documentation. For updated information, go to the
Documentation support site and select Flash Basic 8 or Flash Professional 8.
About LiveDocs
You can access documentation at the LiveDocs website, in addition to accessing it from the
Help panel. The LiveDocs website contains all of the Flash Help pages and might contain
comments that clarify, update, or correct parts of the documentation. Click View Comments
on LiveDocs at the bottom of a page in the Help panel to display the equivalent page on the
LiveDocs website. Go to http://livedocs.macromedia.com to see a list of all of the available
documentation in the LiveDocs format.
16 Introduction
Technical writers monitor the LiveDocs website. One of the advantages of LiveDocs is seeing
comments that clarify the documentation or correct any errata or issues that arise after a
software release. LiveDocs is not the place to make help requests, such as asking questions
about your code that doesnt work, comment on problems with software or installation, or ask
how to create something with Flash. It is the correct place to provide feedback about the
documentation (for example, you notice a sentence or paragraph that could be clarified).
When you click the button to add a comment on LiveDocs, there are several points about the
kinds of comments that are acceptable on the system. Please read these guidelines closely, or
your comment might be removed from the website.
If you have a question about Flash, please ask it on the Macromedia web forums:
www.macromedia.com/support/forums/. The web forums are the best place to ask questions,
because there are many Macromedia employees, Team Macromedia volunteers, Macromedia
user group managers and members, and even technical writers who monitor these forums.
Engineers do not monitor the LiveDocs system but do monitor the Flash wish list. If you
think you have found a bug in the software, or you would like to request an enhancement to
Flash, please fill out the wishform at www.macromedia.com/go/wish. If you report your bug
or enhancement request on LiveDocs, it will not be officially added to the bug database. You
must use the wishform instead, if you want an engineer to see your bug or request.
Remember to be careful about special characters and line breaks when you paste from the
web, including LiveDocs. Macromedia has made every effort to remove all special characters
from code samples, but if you have problems pasting code, see “Copy and paste code
on page 13.
Additional online resources
There are several resources online that offer a wealth of instruction, help, and guidance to help
you learn Macromedia Flash 8. Check the following websites often for updates:
The Macromedia Developer Center website (www.macromedia.com/devnet) is updated
regularly with the latest information on Flash, plus advice from expert users, advanced topics,
examples, tips, tutorials (including multipart tutorials), and other updates. Check the website
often for the latest news on Flash and how to get the most out of the program.
The Macromedia Flash Support Center (www.macromedia.com/support/flash) provides
TechNotes, documentation updates, and links to additional resources in the Flash
community.
The Macromedia Weblogs website (http://weblogs.macromedia.com) provides a list of both
Macromedia employee and community weblogs (also known as blogs).
Additional resources 17
The Macromedia web forums (http://webforums.macromedia.com) provides numerous
forums for asking specific questions about Flash, your applications, or the ActionScript
language. The forums are monitored by Team Macromedia volunteers and often visited by
Macromedia employees as well. If youre not sure where to go, or how to solve a problem, a
Flash forum is a good place to start.
The Macromedia Community website (www.macromedia.com/community) regularly hosts
Macrochats, a series of live presentations on a variety of topics by Macromedia employees or
community members. Check the website often for updates and to register for Macrochats.
Where to find documentation on other subjects
The following manuals offer additional information on subjects commonly associated with
ActionScript 2.0:
For information about the elements that compose the ActionScript language, see the
ActionScript 2.0 Language Reference.
For information about working in the Flash authoring environment, see How to Use Help.
For information about working with components, see Using Components.
18 Introduction
19
1
CHAPTER 1
What’s New in Flash 8
ActionScript
Macromedia Flash Basic 8 and Macromedia Flash Professional 8 provide several
enhancements that make it easy for you to write robust scripts using the ActionScript (AS)
language. The new features, which are discussed in this chapter, include new language
elements (see Additions to the ActionScript language” on page 22), improved editing tools
(see ActionScript editing changes” on page 27), changes to the security model, and other
ActionScript-related improvements to the authoring tool.
For more information, see the following topics:
New in ActionScript 2.0 and Flash 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Changes to security model for locally installed SWF files. . . . . . . . . . . . . . . . . . . . . . 28
New in ActionScript 2.0 and Flash 8
The ActionScript language has grown and developed since its introduction several years ago.
With each new release of Flash, additional keywords, objects, methods, and other language
elements were added to ActionScript. There are also ActionScript-related improvements to
the Flash 8 authoring environments. Flash Basic 8 and Flash Professional 8 introduce several
new language elements for expressive features, such as filters and blending modes, and
application development, such as JavaScript integration (ExternalInterface) and file input and
output (FileReference and FileReferenceList).
This section provides an overview of the ActionScript language elements and classes that are
new or changed in Flash 8 and ActionScript-related improvements to the authoring tool. For
a list of specific additions to ActionScript 2.0, see Additions to the ActionScript language
on page 22. To use any of the new language elements in your scripts, you must target Flash
Player 8 (the default) when you publish your documents.
20 What’s New in Flash 8 ActionScript
The following features were added to both Flash Basic 8 and Flash Professional 8 (unless
noted otherwise):
ActionScript editor enhancements let you show hidden characters in your scripts. For
more information, see “Showing hidden characters” on page 53.
Debug options are now available in the Script window, as well as the Actions panel, for
ActionScript files.
The Configuration directory that includes XML files and Class files is reorganized. See
“Configuration files that install with Flash 8” on page 65 for details.
You can set a preference to reload modified script files when working on an application,
which helps you avoid working with older versions of script files, and overwriting newer
script files. For more information, see About ActionScript preferences” on page 42.
The Script window feature is available in Flash Basic 8 and Flash Professional 8. That
means you can now create an ActionScript file in either program.
Script Assist (similar to Normal Mode in earlier editions of Flash) helps you code without
needing to understand syntax. For more information on Script Assist, see About Script
Assist” on page 58.
You can load new kinds of image files at runtime, which include progressive JPEG images,
and non-animated GIF and PNG files. If you load an animated file, the first frame of the
animation appears.
You can assign linkage identifiers to bitmap and sound files stored in the Library, which
means that you can attach images to the Stage or work with these assets in shared libraries.
Bitmap caching lets you improve the performance of your applications at runtime by
caching a bitmap representation of your instances. You can use ActionScript code to access
this property. For more information, see About bitmap caching, scrolling, and
performance” on page 480.
9-slice scaling lets you scale movie clip instances without widening the strokes that outline
the movie clip. You can use ActionScript code to access this feature in Flash Basic 8 and
Flash Professional 8, or in the Flash 8 authoring tool. For more information, see “Working
with 9-slice scaling in ActionScript” on page 558. For information about accessing 9-slice
scaling in the authoring tool, see About 9-slice scaling and movie clip symbols
on page 79 in Using Flash.
You can now add metadata information to your FLA files in the Publish Settings dialog
box. You can add a name and description to your FLA file using the dialog box to help
increase online search visibility.
The Strings panel is improved to include multiline support in the String field and a
language XML file. For more information, see About the Strings panel” on page 452.
/