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.
Editing: Geta Carlson, Evelyn Eldridge, Mark Nigara
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
As a Macromedia Flash user, you may be familiar with ActionScript, which lets you create
scripts that execute at runtime in Macromedia Flash Player. The Flash JavaScript application
programming interface (JavaScript API) is a complementary programming tool that lets you
create scripts that run in the authoring environment.
This document describes the objects, methods, and properties available in the JavaScript API.
It assumes that you know how to use the documented commands when working in the
authoring environment. If you have a question about what a particular command does, use
other documents in Flash Help, such as Using Flash, to find that information.
This document also assumes that you are familiar with JavaScript or ActionScript syntax and
with basic programming concepts such as functions, parameters, and data types.
The ActionScript language lets you write scripts to perform actions in the Flash Player
environment (that is, while a SWF file is playing). The Flash JavaScript API lets you write
scripts to perform several actions in the Flash authoring environment (that is, while a user has
the Flash program open). These scripts can be used to help streamline the authoring process.
For example, you can write scripts to automate repetitive tasks, add custom tools to the Tools
panel, or add timeline effects.
5
The Flash JavaScript API is designed to resemble the Macromedia Dreamweaver and
Macromedia Fireworks JavaScript API (which were designed based on the Netscape JavaScript
API). The Flash JavaScript API is based on a Document Object Model (DOM), which allows
Flash documents to be accessed using JavaScript objects. The Flash JavaScript API includes all
elements of the Netscape JavaScript API, plus the Flash DOM. These added objects and their
methods and properties are described in this document. You can use any of the elements of
the native JavaScript language in a Flash script, but only elements that make sense in the
context of a Flash document will have an effect.
The JavaScript API also contains a number of methods that let you implement extensibility
using a combination of JavaScript and custom C code. For more information, see Chapter 3,
“C-Level Extensibility,” on page 533.
The JavaScript interpreter in Flash is the Mozilla SpiderMonkey engine, version 1.5, which is
available on the web at www.mozilla.org/js/spidermonkey/. SpiderMonkey is one of the two
reference implementations of the JavaScript language developed by Mozilla.org. It is the same
engine that is embedded in the Mozilla browser.
SpiderMonkey implements the core JavaScript language as defined in the ECMAScript
(ECMA-262) edition 3 language specification and it is fully compliant with the specification.
Only the browser-specific host objects, which are not part of the ECMA-262 specification, are
not supported. Similarly, many JavaScript reference guides distinguish between core
JavaScript and client-side (browser-related) JavaScript. Only core JavaScript applies to the
Flash JavaScript interpreter.
Creating JSFL files
You can use Macromedia Flash 8 or your preferred text editor to write and edit Flash
JavaScript (JSFL) files. If you use Flash, these files have a .jsfl extension by default.
You can also create a JSFL file by selecting commands in the History panel and then clicking
the Save button in the History panel or selecting Save As Command from the options pop-up
menu. The command (JSFL) file is saved in the Commands folder (see “Saving JSFL files”
on page 7). You can then open the file and edit it the same as any other script file.
The History panel provides some other useful options as well. You can copy selected
commands to the Clipboard, and you can view JavaScript commands that are generated while
you are working in Flash.
6Introduction
To copy commands from the History panel to the Clipboard:
1. Select one or more commands in the History panel.
2. Do one of the following:
■Click the Copy button.
■Select Copy Steps from the options pop-up menu.
To view JavaScript commands in the History panel:
■ Select View > JavaScript in Panel from the options pop-up menu.
Saving JSFL files
You can have JSFL scripts available within the Flash authoring environment by storing them
in one of several folders within the Configuration folder. By default, the Configuration folder
is in the following location:
■ Windows 2000 or Windows XP:
boot drive\Documents and Settings\user\Local Settings\Application Data\Macromedia\
Flash 8\language\Configuration\
■ Mac OS X:
Macintosh HD/Users/userName/Library/Application Support/Macromedia/Flash 8/
language/Configuration/
To determine the location of the Configuration folder, use
fl.configURI.
Within the Configuration folder, the following folders can contain scripts that you can access
in the authoring environment: Behaviors, Commands (for scripts that appear on the
Commands menu), Effects (for timeline effects), JavaScript (for scripts used by Script Assist),
Tools (for extensible tools in the Tools panel), and WindowSWF (for panels that appear in the
Windows menu). This document focuses on scripts used for commands, effects, and tools.
If you edit a script in the Commands folder, the new script is immediately available in Flash.
If you edit a script for an effect or extensible tool, you have to close and restart Flash, or else
use the
fl.reloadEffects() or fl.reloadTools() command. However, if you used a
script to add an extensible tool to the Tools panel and you then edit the script, you must
either remove and then add the tool to the Tools panel again, or else close and restart Flash for
the revised tool to be available.
fl.configDirectory or
Overview of the Macromedia Flash JavaScript API7
There are three locations where you can store command, effect, and tool files so they can be
accessed in the authoring environment.
■ For scripts that will appear as items in the Commands menu, save the JSFL file in the
Commands folder in the following location:
■Windows 2000 or Windows XP:
boot drive\Documents and Settings\user\Local Settings\Application
Data\Macromedia\ Flash 8\language\Configuration\Commands
■Mac OS X:
Macintosh HD/Users/userName/Library/Application Support/Macromedia/Flash 8/
language/Configuration/Commands
■ For scripts that will appear as extensible tools in the Tools panel, save the JSFL file in the
Tools folder in the following location:
■Windows 2000 or Windows XP:
boot drive\Documents and Settings\user\Local Settings\Application
Data\Macromedia\Flash 8\ language\Configuration\Tools
■Mac OS X:
Macintosh HD/Users/userName/Library/Application Support/Macromedia/Flash 8/
language/Configuration/Tools
■ For scripts that will appear as timeline effects in the Effects panel, save the JSFL file in the
Effects folder in the following location:
■Windows 2000 or Windows XP:
boot drive\Documents and Settings\user\Local Settings\Application
Data\Macromedia\Flash 8\ language\Configuration\Effects
■Mac OS X:
Macintosh HD/Users/userName/Library/Application Support/Macromedia/Flash 8/
language/Configuration/Effects
If a JSFL file has other files that go with it, such as XML files, they should be stored in the
same directory as the JSFL file.
8Introduction
Running JSFL files
There are several ways to run JSFL files. The most common ways are discussed in this section.
To run a script that is in the Commands folder, do one of the following:
■ Select Commands > Script Name.
■ Use a keyboard shortcut that you have assigned to the script. To assign a keyboard
shortcut, use Edit > Keyboard Shortcuts and select Drawing Menu Commands from the
Commands pop-up menu. Expand the Commands node in the menu tree to view a list of
available scripts.
To run a command script that is not in the Commands folder, do one of the
following:
■ From the authoring environment, select Commands > Run Command, and then select
the script to run.
■ From within a script, use the fl.runScript() command.
■ From the file system, double-click the script file.
To add a tool implemented in a JSFL file to the Tools panel:
1. Copy the JSFL file for the tool and any other associated files to the Tools folder (see “Saving
You can add individual JavaScript API commands to ActionScript files by using the
MMExecute() function, which is documented in the ActionScript 2.0 Language Reference.
However, the
custom user-interface element, such as a component Property inspector, or a SWF panel
within the authoring environment. Even if called from ActionScript, JavaScript API
commands have no effect in Flash Player or outside the authoring environment.
MMExecute() function has an effect only when it is used in the context of a
To issue a command from an ActionScript script:
■ Use the following syntax (you can concatenate several commands into one string):
MMExecute(Javascript command string);
You can also run a script from the command line.
Overview of the Macromedia Flash JavaScript API9
To run a script from the command line on Windows:
■ Use the following syntax (add path information as required):
"flash.exe" myTestFile.jsfl
To run a script from the command line on the Macintosh:
■ Use the following syntax (add path information as required):
osascript -e 'tell application "flash" to open alias "Mac OS
X:Users:user:myTestFile.jsfl" '
The osascript command can also run AppleScript in a file. For example, you could put
the following text in a file named myScript:
tell application "flash"
open alias "Mac OS X:Users:user:myTestFile.jsfl"
end tell
Then, to invoke the script, you would use this command:
osascript myScript
What’s new in the JavaScript API
In Flash 8, several new top-level functions and objects have been added. In addition, some
existing objects now have new methods or properties. These additions, along with other
changes, are summarized below. Also, new samples are provided; see “Sample
implementations” on page 19.
If you have not used the JavaScript API before, you might want to skip this section and go
directly to “The Flash Document Object Model” on page 14.
New top-level methods
The following top-level method is new in Flash 8:
confirm()
The following top-level methods were implemented in Flash MX 2004 but are newly
documented in this release:
alert()
prompt()
10Introduction
New objects
The following objects are new in Flash 8:
Filter object
Project object
ProjectItem object
The following object was implemented in a Flash MX 2004 update release, but is newly
documented in this release:
FLfile object
New methods and properties
The following methods and properties are new in Flash 8:
componentsPanel.reload()
document.addFilter()
document.changeFilterOrder()
document.crop()
document.deleteEnvelope()
document.disableAllFilters()
document.disableFilter()
document.disableOtherFilters()
document.enableAllFilters()
document.enableFilter()
document.exportPNG()
document.getBlendMode()
document.getFilters()
document.getMetadata()
document.importFile()
document.intersect()
document.punch()
document.removeAllFilters()
document.removeFilter()
document.setBlendMode()
document.setFilterProperty()
document.setFilters()
What’s new in the JavaScript API11
document.setMetadata()
document.swapStrokeAndFill()
document.union()
document.zoomFactor
element.layer
element.selected
fill.focalPoint
fill.linearRGB
fill.overflow
fl.browseForFolderURL()
fl.closeProject()
fl.contactSensitiveSelection
fl.createProject()
fl.objectDrawingMode
fl.getAppMemoryInfo()
fl.getProject()
fl.objectDrawingMode
fl.showIdleMessage()
frame.getCustomEase()
frame.hasCustomEase
frame.setCustomEase()
frame.useSingleEaseCurve
shape.isDrawingObject
stroke.capType
stroke.joinType
stroke.miterLimit
stroke.strokeHinting
stroke.scaleType
stroke.shapeFill
symbolInstance.blendMode
symbolInstance.cacheAsBitmap
symbolInstance.filters
symbolItem.scalingGrid
12Introduction
symbolItem.scalingGridRect
text.antiAliasSharpness
text.antiAliasThickness
textAttrs.letterSpacing
text.fontRenderingMode
videoItem.sourceFilePath
videoItem.videoType
xmlui.getControlItemElement()
xmlui.getEnabled()
xmlui.getVisible()
xmlui.setControlItemElement()
xmlui.setControlItemElements()
xmlui.setEnabled()
xmlui.setVisible()
Other changes
The following items have new parameters, additional acceptable values for existing
parameters, or other implementation changes in Flash 8:
document.setSelectionBounds()
document.setSelectionRect()
instance.instanceType
outputPanel.save()
fl.openProject()
text.border
static text)
, text.useDeviceFonts, textAttrs.autoKern (no longer apply only to
Deprecated properties
The following property is deprecated in this release:
textAttrs.characterSpacing (recommended property to use is
textAttrs.letterSpacing)
What’s new in the JavaScript API13
The Flash Document Object Model
The Flash Document Object Model (DOM) for the Flash JavaScript API consists of a set of
top-level functions (see “Top-Level Functions and Methods” on page 23) and two top-level
objects—the FLfile object and the flash object (fl). Each object is guaranteed to be available to
a script because it always exists when the Flash authoring environment is open. For more
information, see FLfile object and flash object (fl).
When referring to the flash object, you can use
files, you can use either of the following statements:
flash.closeAll();
fl.closeAll();
The flash object contains the following child objects:
ObjectHow to access
componentsPanel object Use
Document objectUse
drawingLayer objectUse
Effect objectUse
Math objectUse
outputPanel objectUse
Project objectUse
Tools objectUse
XMLUI objectUse
fl.componentsPanel to access the componentsPanel object.
This object corresponds to the Components panel in the Flash
authoring environment.
fl.documents to retrieve an array of all the open documents;
fl.documents[index] to access a particular document; use
use
fl.getDocumentDOM() to access the current document (the one
with focus).
fl.drawingLayer to access the drawingLayer object.
fl.effects to retrieve an array of effect descriptors that
corresponds to the effects registered when Flash starts; use
fl.effects[index] to access a particular effect; use
fl.activeEffect to access the effect descriptor for the current
effect being applied.
fl.Math to access the Math object.
fl.outputPanel to access the outputPanel object. This object
corresponds to the Output panel in the Flash authoring
environment.
fl.getProject() to return a Project object for the currently
open project.
fl.tools to access an array of Tools objects.
fl.xmlui to access an XML User Interface (XMLUI) object.
The XMLUI object provides the ability to get and set properties of
an XMLUI dialog box.
flash or fl. For example, to close all open
14Introduction
The Document object
An important property of the top-level flash object is the fl.documents property. (See
fl.documents property.) The fl.documents property contains an array of Document
objects that each represent one of the FLA files currently open in the authoring environment.
The properties of each Document object represent most of the elements that a FLA file can
contain. Therefore, a large portion of the DOM is composed of child objects and properties
of the Document object. For more information, see Document object.
To refer to the first open document, for example, use the statement
fl.documents[0]. The first document is the first Flash document that was opened during
the current session in the authoring environment. When the first opened document is closed,
the indexes of the other open documents are decremented.
To find a particular document’s index, use
or fl.findDocumentIndex(nameOfDocument)
flash.findDocumentIndex(nameOfDocument)
. See fl.findDocumentIndex().
To access the document that is currently focused, use the statement
flash.getDocumentDOM() or fl.getDocumentDOM(). See fl.getDocumentDOM(). The
latter is the syntax used in most of the examples in this document.
To find a particular document in the
each document for its
document.name property. Seefl.documents and document.name.
fl.documents array, iterate through the array and test
All the objects in the DOM that aren’t listed in the previous table (see “The Flash Document
Object Model” on page 14) are accessed from the Document object. For example, to access
the library of a document, you use the
document.library property, which retrieves a library
object:
fl.getDocumentDOM().library
To access the array of items in the library, you use the library.items property; each element
in the array is an Item object:
fl.getDocumentDOM().library.items
To access a particular item in the library, you specify a member of the library.items array:
fl.getDocumentDOM().library.items[0]
In other words, the library object is a child of the Document object, and the Item object is a
child of the library object. For more information, see
library.items, and Item object.
document.library, library object,
flash.documents[0] or
The Flash Document Object Model15
Specifying the target of an action
Unless otherwise specified, methods affect the current focus or selection. For example, the
following script doubles the size of the current selection because no particular object is
specified:
fl.getDocumentDOM().scaleSelection(2, 2);
In some cases, you might want an action to specifically target the currently selected item in
the Flash document. To do this, use the array that the
contains (see
document.selection). The first element in the array represents the currently
selected item, as shown in the following example:
var accDescription = fl.getDocumentDOM().selection[0].description;
The following script doubles the size of the first element on the Stage that is stored in the
element array, instead of the current selection:
You can also do something such as loop through all the elements on the Stage and increase the
width and height by a specified amount, as shown in the following example:
var elementArray =
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
for (var i=0; i < elementArray.length; i++) {
var offset = 10;
elementArray[i].width += offset;
elementArray[i].height += offset;
}
document.selection property
Summary of the DOM structure
The following list displays the DOM structure in outline format. Numbers at the beginning
of each line represent the level of an object. For example, an object preceded by “03” is a child
of next highest “02” object, which, in turn, is a child of the next highest “01” object.
In some cases, an object is available by specifying a property of its parent object. For example,
the
document.timelines property contains an array of Timeline objects (see
document.timelines and Timeline object). These properties are noted in the following
outline.
16Introduction
Finally, some objects are subclasses of other objects, rather than being children of other
objects. An object that is a subclass of another object has methods and/or properties of its own
in addition to the methods and properties of the other object (the superclass). Subclasses share
the same level in the hierarchy as their superclass. For example, the Item object is a superclass
of the BitmapItem object (see Item object and BitmapItem object). These relationships are
illustrated in the following outline:
01 Top-Level Functions and Methods
01 FLfile object
01 flash object (fl)
02 componentsPanel object
02 Document object (
fl.documents array)
03 Filter object
03 Matrix object
03 Fill object
03 Stroke object
03 library object
04 Item object (
library.items array)
04 BitmapItem object (subclass of Item object)
04 folderItem object (subclass of Item object)
04 fontItem object (subclass of Item object)
04 SoundItem object (subclass of Item object)
04 SymbolItem object (subclass of Item object)
04 VideoItem object (subclass of Item object)
03 Timeline object (
document.timelines array)
04 Layer object (timeline.layers array)
05 Frame object (
layer.frames array)
06 Element object (frame.elements array)
07 Matrix object (Element.matrix)
The Flash Document Object Model17
06 Instance object (abstract class, subclass of Element object)
06 BitmapInstance object (subclass of Instance object)
06 CompiledClipInstance object (subclass of Instance object)
06 ComponentInstance object (subclass of SymbolInstance object)
07 Parameter object (
componentInstance.parameters)
06 SymbolInstance object (subclass of Instance object)
06 Tex t o b je ct (subclass of Element object)
07 Tex t Ru n o bj ec t (
08 Text At tr s o bj ec t (
text.textRuns array)
textRun.textAttrs array)
06 Shape object (subclass of Element object)
07 Contour object (
shape.contours array)
08 HalfEdge object
09 Vertex object
09 Edge object
07 Edge object (
shape.edges array)
08 HalfEdge object
09 Vertex object
09 Edge object
07 Vertex object (
shape.vertices array)
08 HalfEdge object
09 Vertex object
09 Edge object
03 ScreenOutline object
04 Screen object (
screenOutline.screens array)
05 Parameter object (screen.parameters array)
02 drawingLayer object
03 Path object
04 Contour object
02 Effect object (
fl.effects array)
18Introduction
02 Math object
02 outputPanel object
02 Project object
03 ProjectItem object (project.items array)
02 Tools object (
03 ToolObj object (
fl.tools array)
tools.toolObjs array)
02 XMLUI object
Sample implementations
Several sample JSFL implementations are included with Flash 8. You can review and install
these files to familiarize yourself with the JavaScript API. The samples are installed in a folder
named Samples/ExtendingFlash within the folder in which you installed Flash. For example,
if you installed Flash using the default setting, the samples are placed in the following
location:
■ In Windows: boot drive\Program Files\Macromedia\Flash 8\Samples and
Tutorials\Samples\ExtendingFlash
■ On the Macintosh: Macintosh HD/Applications/Macromedia/Flash 8/Samples and
Tutorials/Samples/ExtendingFlash
Sample Shape command
A sample JavaScript API script named Shape.jsfl is located in the ExtendingFlash/Shape folder
(see “Sample implementations” above). This script displays information about the contours of
the shape in the Output panel.
To install and run the Shape script:
1. Copy the Shape.jsfl file to the Configuration/Commands folder (see “Saving JSFL files”
on page 7).
2. In a Flash document (FLA file), select a shape object.
3. Select Commands > Shape to run the script.
Sample implementations19
Sample get and set filters command
A sample JavaScript API script named filtersGetSet.jsfl is located in the ExtendingFlash/
filtersGetSet folder (see “Sample implementations” on page 19). This script adds filters to a
selected object and displays information about the filters being added in the Output panel.
To install and run the filtersGetSet script:
1. Copy the filtersGetSet.jsfl file to the Configuration/Commands folder (see “Saving JSFL
files” on page 7).
2. In a Flash document (FLA file), select a text, movie clip, or button object.
3. Select Commands > filtersGetSet to run the script.
Sample PolyStar tool
A sample JavaScript API script named PolyStar.jsfl is located in the ExtendingFlash/PolyStar
folder (see “Sample implementations” on page 19).
The PolyStar.jsfl replicates the PolyStar tool that can be found in the Flash Tools panel. The
script demonstrates how to build the PolyStar tool using the JavaScript API, and includes
detailed comments describing what the code is doing. Read this file to gain a better
understanding of how the JavaScript API can be used. You should also read the PolyStar.xml
file in the Tools directory to learn more about how to build your own tool.
Flash includes an earlier (obfuscated) version of the PolyStar.jsfl script that you must remove
in order to use the sample PolyStar.jsfl file.
20Introduction
To remove the earlier version of the PolyStar.jsfl file that was installed with
Flash:
(Macintosh). You should see PolyStar tool in the available tools list.
5. Click the Rectangle tool at the left side of the Customize Tools Panel dialog box. The
Rectangle Tool should appear in the Current Selection list at the right side of the
dialog box.
6. Select the PolyStar tool from the Available Tools list.
7. Click Add.
8. Click OK.
The PolyStar tool now appears in the Rectangle tool pop-up menu.
Sample implementations21
Sample Trace Bitmap panel
A set of files named TraceBitmap.fla and TraceBitmap.swf are located in the ExtendingFlash/
TraceBitmapPanel folder (see “Sample implementations” on page 19). These files illustrate
how to design and build a panel to control the functions of Flash. They also show the use of
the
MMExecute() function to call JavaScript commands from an ActionScript script.
To run the TraceBitmap sample:
1. If Flash is running, exit from Flash.
2. Copy the TraceBitmap.swf file to the Configuration/WindowSWF folder (see “Saving
JSFL files” on page 7).
3. Start Flash.
4. Create or open a Flash document (FLA file), and import a bitmap or JPEG image into
the file.
You can use the flower.jpg file provided in the TraceBitmapPanel folder or another image
of your choice.
5. With the imported image selected, select Window > Other Panels > TraceBitmap.
6. Click Submit.
The image is converted into a group of shapes.
Sample DLL
A sample DLL implementation is located in the ExtendingFlash/dllSampleComputeSum
folder (see “Sample implementations” on page 19). For more information about building
DLLs, see Chapter 3, “C-Level Extensibility,” on page 533.
22Introduction
CHAPTER 1
Top-Level Functions and
Methods
This chapter describes the top-level functions and methods that are available when you use
the Macromedia Flash JavaScript application programming interface (JavaScript API). For
information about where to store JavaScript API files, see “Saving JSFL files” on page 7.
The following lists summarize the areas in the authoring environment that relate to each
function or method. Following the lists, the functions and methods are listed in alphabetical
order.
Global methods
The following methods can be called from any JavaScript API script:
alert()
confirm()
prompt()
Timeline effects
1
The following functions are specific to timeline effects:
configureEffect()
executeEffect()
removeEffect()
23
Extensible tools
The following functions are available in scripts that create extensible tools:
Function; called when the extensible tool becomes active (that is, when the tool is selected in
the Tools panel). Use this function to perform any initialization tasks the tool requires.
24Top-Level Functions and Methods
Example
The following example sets the value of tools.activeTool when the extensible tool is
selected in the Tools panel:
function activate() {
var theTool = fl.tools.activeTool
}
See also
tools.activeTool
alert()
Availability
Flash MX 2004.
Usage
alert ( alertText )
Parameters
alertText A string that specifies the message you want to display in the Alert dialog box.
Returns
Nothing.
Description
Method; displays a string in a modal Alert dialog box, along with an OK button.
Example
The following example displays the message “Process Complete” in an Alert dialog box:
alert("Process Complete");
See also
confirm(), prompt()
alert()25
configureEffect()
Availability
Flash MX 2004.
Usage
function configureEffect() {
// Statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called once when Flash loads; place any global initialization statements for your
effect inside this function. The per instance parameter data for an effect cannot be accessed
here.
See also
executeEffect(), removeEffect()
configureTool()
Availability
Flash MX 2004.
Usage
function configureTool() {
// statements
}
Parameters
None.
Returns
Nothing.
26Top-Level Functions and Methods
Description
Function; called when Flash opens and the extensible tool is loaded into the Tools panel. Use
this function to set any information Flash needs to know about the tool.
Example
The following examples show two possible implementations of this function:
strAlert A string that specifies the message you want to display in the Alert dialog box.
Returns
A Boolean value: true if the user clicks OK; false if the user clicks Cancel.
Description
Method; displays a string in a modal Alert dialog box, along with OK and Cancel buttons.
confirm()27
Example
The following example displays the message “Sort data?” in an Alert dialog box:
confirm("Sort data?");
See also
alert(), prompt()
deactivate()
Availability
Flash MX 2004.
Usage
function deactivate() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the extensible tool becomes inactive (that is, when the active tool
changes from this tool to another one). Use this function to perform any cleanup the tool
needs.
Example
The following example displays a message in the Output panel when the tool becomes
inactive:
function deactivate() {
fl.trace( "Tool is no longer active" );
}
28Top-Level Functions and Methods
executeEffect()
Availability
Flash MX 2004.
Usage
function executeEffect() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the user first applies an effect or changes an effect’s properties. The
code contained in this function modifies the original object(s) to create the desired effect. It is
also responsible for copying the original to a hidden layer if necessary for the
function.
See also
configureEffect(), removeEffect()
removeEffect
keyDown()
Availability
Flash MX 2004.
Usage
function keyDown() {
// statements
}
Parameters
None.
Returns
Nothing.
keyDown()29
Description
Function; called when the extensible tool is active and the user presses a key. The script should
call
tools.getKeyDown() to determine which key was pressed.
Example
The following example displays information about which key was pressed when the extensible
tool is active and the user presses a key.
function keyDown() {
fl.trace("key " + fl.tools.getKeyDown() + " was pressed");
}
See also
keyUp(), tools.getKeyDown()
keyUp()
Availability
Flash MX 2004.
Usage
function keyUp() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the extensible tool is active and a key is released.
30Top-Level Functions and Methods
Example
The following example displays a message in the Output panel when the extensible tool is
active and a key is released.
function keyUp() {
fl.trace("Key is released");
}
See also
keyDown()
mouseDoubleClick()
Availability
Flash MX 2004.
Usage
function mouseDoubleClick() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the extensible tool is active and the mouse button is double-clicked on
the Stage.
Example
The following example displays a message in the Output panel when the extensible tool is
active and the mouse button is double-clicked.
function mouseDoubleClick() {
fl.trace("Mouse was double-clicked");
}
mouseDoubleClick()31
mouseDown()
Availability
Flash MX 2004.
Usage
function mouseDown( [ pt ] ) {
// statements
}
Parameters
pt A point that specifies the location of the mouse when the button is pressed. It is passed to
the function when the mouse button is pressed. This parameter is optional.
Returns
Nothing.
Description
Function; called when the extensible tool is active and the mouse button is pressed while the
pointer is over the Stage.
Example
The following examples show how this function can be used when the extensible tool is active.
The first example displays a message in the Output panel that the mouse button was pressed.
The second example displays the x and y coordinates of the mouse’s location when the button
was pressed.
function mouseDown() {
fl.trace("Mouse button has been pressed");
}
function mouseDown(pt) {
fl.trace("x = "+ pt.x+" :: y = "+pt.y);
}
32Top-Level Functions and Methods
mouseMove()
Availability
Flash MX 2004.
Usage
function mouseMove( [ pt ] ) {
// statements
}
Parameters
pt A point that specifies the current location of the mouse. It is passed to the function
whenever the mouse moves, which tracks the mouse location. If the Stage is in edit or
edit-in-place mode, the point coordinates are relative to the object being edited. Otherwise,
the point coordinates are relative to the Stage. This parameter is optional.
Returns
Nothing.
Description
Function; called whenever the extensible tool is active and the mouse moves over a specified
point on the Stage. The mouse button can be down or up.
Example
The following examples show how this function can be used. The first example displays a
message in the Output panel that the mouse is being moved. The second example displays
the x and y coordinates of the mouse’s location as it moves.
function mouseMove() {
fl.trace("moving");
}
function mouseMove(pt) {
fl.trace("x = "+ pt.x + " :: y = " + pt.y);
}
mouseMove()33
mouseUp()
Availability
Flash MX 2004.
Usage
function mouseUp() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called whenever the extensible tool is active and the mouse button is released after
being pressed on the Stage.
Example
The following example displays a message in the Output panel when the extensible tool is
active and the mouse button is released.
function mouseUp() {
fl.trace("mouse is up");
}
notifySettingsChanged()
Availability
Flash MX 2004.
Usage
function notifySettingsChanged() {
// statements
}
Parameters
None.
34Top-Level Functions and Methods
Returns
Nothing.
Description
Function; called when the extensible tool is active and the user changes its options in the
Property inspector. You can use the
of the options (see
Example
tools.activeTool).
tools.activeTool property to query the current values
The following example displays a message in the Output panel when the extensible tool is
active and the user changes its options in the Property inspector.
function notifySettingsChanged() {
var theTool = fl.tools.activeTool;
var newValue = theTool.myProp;
}
prompt()
Availability
Flash MX 2004.
Usage
prompt( promptMsg, [ text ] )
Parameters
promptMsg A string to display in the Prompt dialog box (limited to 256 characters on
Macintosh OS X).
text An optional string to display as a default value for the text field.
Returns
The string the user typed if the user clicks OK; null if the user clicks Cancel.
Description
Method; displays a prompt and optional text in a modal Alert dialog box, along with OK and
Cancel buttons.
prompt()35
Example
The following example prompts the user to enter a user name. If the user types a name and
clicks OK, the name appears in the Output panel.
var userName = prompt("Enter user name", "Type user name here");
fl.trace(userName);
See also
alert(), confirm()
removeEffect()
Availability
Flash MX 2004.
Usage
function removeEffect() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the user changes an effect’s properties or uses the Remove Effect menu
item. The code contained in this function returns the object(s) to their original state. For
example, if the effect broke a text string apart, the
removeEffect() method would remove
the text string that was broken apart and replace it with the original string.
See also
configureEffect(), executeEffect()
36Top-Level Functions and Methods
setCursor()
Availability
Flash MX 2004.
Usage
function setCursor() {
// statements
}
Parameters
None.
Returns
Nothing.
Description
Function; called when the extensible tool is active and the mouse moves, to allow the script to
set custom pointers. The script should call
For a list that shows which pointers correspond to which integer values, see
tools.setCursor().
Example
function setCursor() {
fl.tools.setCursor( 1 );
}
tools.setCursor() to specify the pointer to use.
setCursor()37
38Top-Level Functions and Methods
CHAPTER 2
Objects
This chapter briefly describes each of the objects available in the Flash JavaScript application
programming interface (JavaScript API). The objects are listed in alphabetical order in the
following table:
ObjectDescription
BitmapInstance objectThe BitmapInstance object is a subclass of the Instance object
and represents a bitmap in a frame.
BitmapItem objectA BitmapItem object refers to a bitmap in the library of a
document. The BitmapItem object is a subclass of the Item
object.
CompiledClipInstance object The CompiledClipInstance object is a subclass of the Instance
object.
ComponentInstance objectThe ComponentInstance object is a subclass of the
SymbolInstance object and represents a component in a
frame.
componentsPanel objectThe componentsPanel object, which represents the
Components panel, is a property of the flash object (fl) and can
be accessed by
Contour objectA Contour object represents a closed path of half edges on the
boundary of a shape.
Document objectThe Document object represents the Stage.
drawingLayer objectThe drawingLayer object is accessible from JavaScript as a
child of the flash object.
Edge objectThe Edge object represents an edge of a shape on the Stage.
Effect objectThe Effect object represents an instance of a timeline effect.
Element objectEverything that appears on the Stage is of the type Element.
Fill objectThe Fill object contains all the properties of the Fill color
setting of the Tools panel or of a selected shape.
fl.componentsPanel.
2
39
ObjectDescription
Filter object The Filter object contains all the properties for all filters.
flash object (fl)The flash object represents the Flash application.
FLfile objectThe FLfile object lets you write Flash extensions that can
access, modify, and remove files and folders on the local file
system.
folderItem objectThe folderItem object is a subclass of the Item object.
fontItem objectThe fontItem object is a subclass of the Item object.
Frame objectThe Frame object represents frames in the layer.
HalfEdge objectDirected side of the edge of a Shape object.
Instance objectThe Instance object is a subclass of the Element object.
Item objectThe Item object is an abstract base class.
Layer objectThe Layer object represents a layer in the timeline.
library objectThe library object represents the Library panel.
Math objectThe Math object is available as a read-only property of the
flash object; see
Matrix objectThe Matrix object represents a transformation matrix.
outputPanel objectThe outputPanel object represents the Output panel, which
displays troubleshooting information such as syntax errors.
Parameter objectThe Parameter object type is accessed from the
screen.parameters array (which corresponds to the screen
Property inspector in the Flash authoring tool) or by the
componentInstance.parameters array (which corresponds to
the component Property inspector in the authoring tool).
Path objectThe Path object defines a sequence of line segments (straight,
curved, or both), which you typically use when creating
extensible tools.
Project object The Project object represents a Flash Project (FLP) file.
ProjectItem objectThe ProjectItem object represents an item (file on disk) that
has been added to a project.
Screen objectThe Screen object represents a single screen in a slide or form
document.
ScreenOutline objectThe ScreenOutline object represents the group of screens in a
slide or form document.
fl.Math.
40Objects
ObjectDescription
Shape objectThe Shape object is a subclass of the Element object. The
Shape object provides more precise control than the drawing
APIs for manipulating or creating geometry on the Stage.
SoundItem objectThe SoundItem object is a subclass of the Item object. It
represents a library item used to create a sound.
Stroke objectThe Stroke object contains all the settings for a stroke,
including the custom settings.
SymbolInstance objectThe SymbolInstance object is a subclass of the Instance
object and represents a symbol in a frame.
SymbolItem objectThe SymbolItem object is a subclass of the Item object.
Text objectThe Text object represents a single text item in a document.
TextAttrs objectThe TextAttrs object contains all the properties of text that can
be applied to a subselection. This object is a subclass of the
Text object.
TextRun objectThe TextRun object represents a run of characters that have
attributes that match all of the properties in the TextAttrs
object.
Timeline objectThe Timeline object represents the Flash timeline, which can
be accessed for the current document by
fl.getDocumentDOM().getTimeline().
ToolObj objectA ToolObj object represents an individual tool in the Tools
panel.
Tools objectThe Tools object is accessible from the Flash object
fl.tools).
(
Vertex objectThe Vertex object is the part of the shape data structure that
holds the coordinate data.
VideoItem objectThe VideoItem object is a subclass of the Item object.
XMLUI objectThe XMLUI object provides the ability to get and set
properties of an XMLUI dialog box, and accept or cancel
out of one.
41
CHAPTER 3
Objects
BitmapInstance object
Inheritance Element object > Instance object > BitmapInstance object
Availability
Flash MX 2004.
Description
The BitmapInstance object is a subclass of the Instance object and represents a bitmap in a
frame (see Instance object).
Method summary for the BitmapInstance object
In addition to the Instance object methods, you can use the following methods with the
BitmapInstance object:
MethodDescription
bitmapInstance.getBits()Lets you create bitmap effects by getting the bits out of the
bitmap, manipulating them, and then returning them to Flash.
bitmapInstance.setBits()Sets the bits of an existing bitmap element.
Property summary for the BitmapInstance object
In addition to the Instance object properties, you can use the following properties with the
BitmapInstance object.
PropertyDescription
bitmapInstance.hPixels Read-only; an integer that represents the width of the bitmap,
in pixels.
bitmapInstance.vPixels Read-only; an integer that represents the height of the bitmap,
in pixels.
bitmapInstance.getBits()
Availability
Flash MX 2004.
Usage
bitmapInstance.getBits()
42Objects
Parameters
None.
Returns
An object that contains width, height, depth, bits, and, if the bitmap has a color table,
cTab properties. The bits element is an array of bytes. The cTab element is an array of color
values of the form
"#RRGGBB". The length of the array is the length of the color table.
The byte array is meaningful only when referenced by a DLL or shared library. You typically
use it only when creating an extensible tool or effect. For information on creating DLLs for
use with Flash JavaScript, see Chapter 3, “C-Level Extensibility.”
Description
Method; lets you create bitmap effects by getting the bits out of the bitmap, manipulating
them, and then returning them to Flash. See also
Example
bitmapInstance.setBits().
The following code creates a reference to the currently selected object; tests whether the object
is a bitmap; and traces the height, width, and bit depth of the bitmap:
var isBitmap = fl.getDocumentDOM().selection[0].instanceType;
if(isBitmap == "bitmap"){
var bits = fl.getDocumentDOM().selection[0].getBits();
fl.trace("height = " + bits.height);
fl.trace("width = " + bits.width);
fl.trace("depth = " + bits.depth);
}
See also
bitmapInstance.setBits()
bitmapInstance.hPixels
Availability
Flash MX 2004.
Usage
bitmapInstance.hPixels
Description
Read-only property; an integer that represents the width of the bitmap—that is, the number
of pixels in the horizontal dimension.
BitmapInstance object43
Example
The following code retrieves the width of the bitmap in pixels:
// Get the number of pixels in the horizontal dimension.
var bmObj = fl.getDocumentDOM().selection[0];
var isBitmap = bmObj.instanceType;
if(isBitmap == "bitmap"){
var numHorizontalPixels = bmObj.hPixels;
}
See also
bitmapInstance.vPixels
bitmapInstance.setBits()
Availability
Flash MX 2004.
Usage
bitmapInstance.setBits(bitmap)
Parameters
bitmap An object that contains height, width, depth, bits, and cTab properties. The
height, width, and depth properties are integers. The bits property is a byte array. The
cTab property is required only for bitmaps with a bit depth of 8 or less and is a string that
represents a color value in the form
NOTE
The byte array is meaningful only when referenced by an external library. You typically
use it only when creating an extensible tool or effect.
"#RRGGBB".
Returns
Nothing.
Description
Method; sets the bits of an existing bitmap element. This lets you create bitmap effects by
getting the bits out of the bitmap, manipulating them, and then returning the bitmap to
Flash.
44Objects
Example
The following code tests whether the current selection is a bitmap, and then sets the height of
the bitmap to 150 pixels:
var isBitmap = fl.getDocumentDOM().selection[0].instanceType;
if(isBitmap == "bitmap"){
var bits = fl.getDocumentDOM().selection[0].getBits();
bits.height = 150;
fl.getDocumentDOM().selection[0].setBits(bits);
}
See also
bitmapInstance.getBits()
bitmapInstance.vPixels
Availability
Flash MX 2004.
Usage
bitmapInstance.vPixels
Description
Read-only property; an integer that represents the height of the bitmap—that is, the number
of pixels in the vertical dimension.
Example
The following code gets the height of the bitmap in pixels:
// Get the number of pixels in the vertical dimension.
var bmObj = fl.getDocumentDOM().selection[0];
var isBitmap = bmObj.instanceType;
if(isBitmap == "bitmap"){
var numVerticalPixels = bmObj.vPixels;
}
See also
bitmapInstance.hPixels
BitmapInstance object45
CHAPTER 4
Objects
BitmapItem object
Inheritance Item object > BitmapItem object
Availability
Flash MX 2004.
Description
A BitmapItem object refers to a bitmap in the library of a document. The BitmapItem object
is a subclass of the Item object (see Item object).
Property summary for the BitmapItem object
In addition to the Item object properties, the BitmapItem object has following properties:
PropertyDescription
bitmapItem.allowSmoothingA Boolean value that specifies whether to allow
smoothing of a bitmap.
bitmapItem.compressionTypeA string that determines the type of image
compression applied to the bitmap.
bitmapItem.qualityAn integer that specifies the quality of the bitmap
bitmapItem.useImportedJPEGQualityA Boolean value that specifies whether to use the
default imported JPEG quality.
bitmapItem.allowSmoothing
Availability
Flash MX 2004.
Usage
bitmapItem.allowSmoothing
Description
Property; a Boolean value that specifies whether to allow smoothing of a bitmap (true) or not
(
false).
46Objects
Example
The following code sets the allowSmoothing property of the first item in the library of the
current document to
Property; a string that determines the type of image compression applied to the bitmap.
Acceptable values are
bitmapItem.useImportedJPEGQuality is false, "photo" corresponds to JPEG with a
quality from 0 to 100; if
corresponds to JPEG using the default document quality value. The value
corresponds to GIF or PNG format. (See bitmapItem.useImportedJPEGQuality.)
Example
The following code sets the compressionType property of the first item in the library of the
current document to
bitmapItem.useImportedJPEGQuality is true, "photo"
"lossless"
"photo":
bitmapItem.quality
Availability
Flash MX 2004.
Usage
bitmapItem.quality
Description
Property; an integer that specifies the quality of the bitmap. To use the default document
quality, specify -1; otherwise, specify an integer from 0 to 100. Available only for JPEG
compression.
BitmapItem object47
Example
The following code sets the quality property of the first item in the library of the current
document to 65:
Inheritance Element object > Instance object > CompiledClipInstance object
Availability
Flash MX 2004.
Description
The CompiledClipInstance object is a subclass of the Instance object. It is essentially an
instance of a movie clip that has been converted to a compiled clip library item. (See Instance
object.)
Property summary for the CompiledClipInstance
object
In addition to the properties of the Instance object, the CompiledClipInstance object has the
following properties:
PropertyDescription
compiledClipInstance.accName
compiledClipInstance.actionScript
compiledClipInstance.description
compiledClipInstance.forceSimple
compiledClipInstance.shortcut
compiledClipInstance.silent
compiledClipInstance.tabIndex
A string that is equivalent to the Name field in the
Accessibility panel.
A string that represents the ActionScript for this
instance; equivalent to
A string that is equivalent to the Description field in the
Accessibility panel.
A Boolean value that enables and disables the children
of the object to be accessible.
A string that is equivalent to the Shortcut field in the
Accessibility panel.
A Boolean value that enables or disables the
accessibility of the object; equivalent to the inverse
logic of the Make Object Accessible setting in the
Accessibility panel.
An integer that is equivalent to the Tab Index field in the
Accessibility panel.
symbolInstance.actionScript.
CompiledClipInstance object49
compiledClipInstance.accName
Availability
Flash MX 2004.
Usage
compiledClipInstance.accName
Description
Property; a string that is equivalent to the Name field in the Accessibility panel. Screen readers
identify objects by reading the name aloud.
Example
The following example gets and sets the accessibility name of the first selected object:
// Get the name of the object.
var theName = fl.getDocumentDOM().selection[0].accName;
// Set the name of the object.
fl.getDocumentDOM().selection[0].accName = 'Home Button';
compiledClipInstance.actionScript
Availability
Flash MX 2004.
Usage
compiledClipInstance.actionScript
Description
Property; a string that represents the ActionScript for this instance; equivalent to
symbolInstance.actionScript.
Example
The following code assigns ActionScript to specified elements:
// Assign some ActionScript to a specified Button compiled clip instance.
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0]
.actionScript = "on(click) {trace('button is clicked');}";
// Assign some ActionScript to the currently selected Button compiled clip
Property; a string that is equivalent to the Description field in the Accessibility panel. The
description is read by the screen reader.
Example
The following example illustrates getting and setting the description property:
// Get the description of the current selection.
var theDescription = fl.getDocumentDOM().selection[0].description;
// Set the description of the current selection.
fl.getDocumentDOM().selection[0].description =
"This is compiled clip number 1";
compiledClipInstance.forceSimple
Availability
Flash MX 2004.
Usage
compiledClipInstance.forceSimple
Description
Property; a Boolean value that enables and disables the children of the object to be accessible.
This is equivalent to the inverse logic of the Make Child Objects Accessible setting in the
Accessibility panel. If
Accessible option being unchecked. If
forceSimple is true, it is the same as the Make Child Objects
forceSimple is false, it is the same as the Make
Child Object Accessible option being checked.
Example
The following example illustrates getting and setting the forceSimple property:
// Query if the children of the object are accessible.
var areChildrenAccessible = fl.getDocumentDOM().selection[0].forceSimple;
// Allow the children of the object to be accessible.
fl.getDocumentDOM().selection[0].forceSimple = false;
CompiledClipInstance object51
compiledClipInstance.shortcut
Availability
Flash MX 2004.
Usage
compiledClipInstance.shortcut
Description
Property; a string that is equivalent to the Shortcut field in the Accessibility panel. The
shortcut is read by the screen readers. This property is not available for dynamic text fields.
Example
The following example illustrates getting and setting the shortcut property:
// Get the shortcut key of the object.
var theShortcut = fl.getDocumentDOM().selection[0].shortcut;
// Set the shortcut key of the object.
fl.getDocumentDOM().selection[0].shortcut = "Ctrl+I";
compiledClipInstance.silent
Availability
Flash MX 2004.
Usage
compiledClipInstance.silent
Description
Property; a Boolean value that enables or disables the accessibility of the object; equivalent to
the inverse logic of Make Object Accessible setting in the Accessibility panel. That is, if
silent is true, then Make Object Accessible is unchecked. If silent is false, then Make
Object Accessible is checked.
Example
The following example illustrates getting and setting the silent property:
// Query if the object is accessible.
var isSilent =fl.getDocumentDOM().selection[0].silent;
// Set the object to be accessible.
fl.getDocumentDOM().selection[0].silent = false;
52Objects
compiledClipInstance.tabIndex
Availability
Flash MX 2004.
Usage
compiledClipInstance.tabIndex
Description
Property; an integer that is equivalent to the Tab Index field in the Accessibility panel. Creates
a tab order in which objects are accessed when the user presses the Tab key.
Example
The following example illustrates getting and setting the tabIndex property:
// Get the tabIndex of the object.
var theTabIndex = fl.getDocumentDOM().selection[0].tabIndex;
// Set the tabIndex of the object.
fl.getDocumentDOM().sele ction[0].tabIndex = 1;
CompiledClipInstance object53
CHAPTER 6
Objects
ComponentInstance object
Inheritance Element object > Instance object > SymbolInstance object >
ComponentInstance object
Availability
Flash MX 2004.
Description
The ComponentInstance object is a subclass of the SymbolInstance object and represents a
component in a frame. (See SymbolInstance object.)
Property summary for the ComponentInstance object
In addition to all the properties of the SymbolInstance object, the ComponentInstance object
has the following property:
PropertyDescription
componentInstance.parametersRead-only; an array of ActionScript 2.0 properties that
are accessible from the component Property inspector.
componentInstance.parameters
Availability
Flash MX 2004.
Usage
componentInstance.parameters
Description
Read-only property; an array of ActionScript 2.0 properties that are accessible from the
component Property inspector. See “Parameter object” on page 337.
Example
The following example illustrates getting and setting the parameters property:
var parms = fl.getDocumentDOM().selection[0].parameters;
parms[0].value = "some value";
See also
Parameter object
54Objects
CHAPTER 7
Objects
componentsPanel object
Availability
Flash MX 2004.
Description
The componentsPanel object, which represents the Components panel, is a property of the
flash object (fl) and can be accessed by
Method summary for the componentsPanel object
You can use the following methods with the componentsPanel object:
MethodDescription
componentsPanel.addItemToDocument()Adds the specified component to the document
componentsPanel.reload()Refreshes the Components panel's list of
Read-only property; an integer indicating the orientation of the contour. The value of the
integer is -1 if the orientation is counterclockwise, 1 if it is clockwise, and 0 if it is a contour
with no area.
Contour object59
Example
The following example traverses all the contours of the selected shape and shows the value of
the
orientation property of each contour in the Output panel:
var elt = fl.getDocumentDOM().selection[0];
elt.beginEdit();
var contourArray = elt.contours;
var contourCount = 0;
for (i=0; i<contourArray.length; i++) {
name A string that specifies the name of the persistent data.
type Defines the type of data. Acceptable values are "integer", "integerArray",
"double", "doubleArray", "string", and "byteArray".
data The value to add. Valid types depend on the type parameter.
Returns
Nothing.
70Objects
Description
Method; stores specified data with the selected object(s). Data is written to the FLA file and is
available to JavaScript when the file reopens. Only symbols and bitmaps support persistent
data.
Example
The following example adds an integer value of 12 to the selected object:
position A point that specifies the x and y coordinates of the location at which to add the
item. It uses the center of a symbol or the upper-left corner of a bitmap or video.
item An Item object that specifies the item to add and the library from which to add it (see
Item object).
Returns
A Boolean value: true if successful; false otherwise.
Description
Method; adds an item from any open document or library to the specified Document object.
Example
The following example adds the first item from the library to the first document at the
specified location for the selected symbol, bitmap, or video:
var item = fl.documents[0].library.items[0];
fl.documents[0].addItem({x:0,y:0}, item);
The following example adds the symbol myMovieClip from the current document’s library to
the current document:
var itemIndex = fl.getDocumentDOM().library.findItemIndex("myMovieClip");
var theItem = fl.getDocumentDOM().library.items[itemIndex];
fl.getDocumentDOM().addItem({x:0,y:0}, theItem);
The following example adds the symbol myMovieClip from the second document in the
documents array to the third document in the documents array:
var itemIndex = fl.documents[1].library.findItemIndex("myMovieClip");
var theItem = fl.documents[1].library.items[itemIndex];
fl.documents[2].addItem({x:0,y:0}, theItem);
72Objects
document.addNewLine()
Availability
Flash MX 2004.
Usage
document.addNewLine( startPoint, endpoint )
Parameters
startpoint A pair of floating-point numbers that specify the x and y coordinates where the
line starts.
endpoint A pair of floating-point numbers that specify the x and y coordinates where the
line ends.
Returns
Nothing.
Description
Method; adds a new path between two points. The method uses the document’s current
stroke attributes and adds the path on the current frame and current layer. This method works
in the same way as clicking on the line tool and drawing a line.
Example
The following example adds a line between the specified starting point and ending point:
boundingRectangle A rectangle that specifies the bounds of the oval to be added. For
information on the format of
bSuppressFill A Boolean value that, if set to true, causes the method to create the shape
without a fill. The default value is
bSuppressStroke A Boolean value that, if set to true, causes the method to create the
shape without a stroke. The default value is
boundingRectangle, see document.addNewRectangle().
false. This parameter is optional.
false. This parameter is optional.
Returns
Nothing.
Description
Method; adds a new oval in the specified bounding rectangle. This method performs the same
operation as the oval tool. The method uses the document’s current default stroke and fill
attributes and adds the oval on the current frame and layer. If
the oval is drawn without a fill. If
a stroke. If both
bSuppressFill and bSuppressStroke are set to true, the method has no
bSuppressStroke is set to true, the oval is drawn without
bSuppressFill is set to true,
effect.
Example
The following example adds a new oval within the specified coordinates; it is 164 pixels in
width and 178 pixels in height:
boundingRectangle A rectangle that specifies the bounds within which the new rectangle
is added, in the format
left and top values specify the location of the upper-left corner (e.g., left:0,top:0
represents the upper-left of the Stage), and the
{left:value1,top:value2,right:value3,bottom:value4}. The
right and bottom values specify location of
the lower-right corner. Therefore, the width of the rectangle is the difference in value between
left and right, and the height of the rectangle is the difference in value between top and
bottom.
In other words, the rectangle bounds do not all correspond to the values shown in the
Property inspector. The
inspector, respectively. However, the
left and top values correspond to the X and Y values in the Property
right and bottom values don’t correspond to the W and
H values in the Property inspector. For example, consider a rectangle with the following
bounds:
{left:10,top:10,right:50,bottom:100}
This rectangle would display the following values in the Property inspector:
X = 10, Y = 10, W = 40, H = 90
roundness
An integer value from 0 to 999 that specifies the roundness to use for the
corners. The value is specified as number of points. The greater the value, the greater the
roundness.
bSuppressFill A Boolean value that, if set to true, causes the method to create the shape
without a fill. The default value is
bSuppressStroke A Boolean value that, if set to true, causes the method to create the
rectangle without a stroke. The default value is
false. This parameter is optional.
false. This parameter is optional.
Returns
Nothing.
Description
Method; adds a new rectangle or rounded rectangle, fitting it into the specified bounds. This
method performs the same operation as the rectangle tool. The method uses the document’s
current default stroke and fill attributes and adds the rectangle on the current frame and layer.
If the
bSuppressFill parameter is set to true, the rectangle is drawn without a fill. If the
bSuppressStroke parameter is set to true, the rectangle is drawn without a stroke. If both
bSuppressFill and bSuppressStroke are set to true, the method has no effect.
76Objects
Example
The following example adds a new rectangle with no rounding on the corners within the
specified coordinates; it is 100 pixels in width and in height:
name Specifies the name of the scene. If you do not specify a name, a new scene name is
generated.
Returns
A Boolean value: true if the scene is added successfully; false otherwise.
Description
Method; adds a new scene (Timeline object) as the next scene after the currently selected
scene and makes the new scene the currently selected scene. If the specified scene name
already exists, the scene is not added and the method returns an error.
Document object77
Example
The following example adds a new scene named myScene after the current scene in the
current document. The variable
success will be true when the new scene is created; false
otherwise.
var success = flash.getDocumentDOM().addNewScene("myScene");
The following example adds a new scene using the default naming convention. If only one
scene exists, the newly created scene is named
fl.getDocumentDOM().addNewScene();
"Scene 2".
document.addNewText()
Availability
Flash MX 2004.
Usage
document.addNewText( boundingRectangle )
Parameters
boundingRectangle Specifies the size and location of the text field; for information on the
format of
calling
Returns
Nothing.
boundingRectangle, see document.addNewRectangle(). It should be followed by
document.seTextString() to populate the new text box.
Description
Method; inserts a new empty text field.
Example
The following example creates a new text field in the upper-left corner of the Stage and then
sets the text string to
alignmode A string that specifies how to align the selection. Acceptable values are "left",
"right", "top", "bottom", "vertical center", and "horizontal center".
bUseDocumentBounds A Boolean value that, if set to true, causes the method to align to
the bounds of the document. Otherwise, the method uses the bounds of the selected objects.
The default is
Returns
Nothing.
Description
Method; aligns the selection.
Example
The following example aligns objects to left and to the Stage. This is equivalent to turning on
the To Stage setting in the Align panel and clicking the Align to Left button:
A Boolean value: true if document.screenOutline can be used safely; false otherwise.
Description
Method; use before using the document.screenOutline property. If this method returns the
value
true, you can safely access document.screenOutline; Flash displays an error if you
access
document.screenOutline in a document without screens.
Example
The following example determines whether screens methods can be used in the current
document:
if(fl.getDocumentDOM().allowScreens()) {
fl.trace("screen outline is available.");
}
else {
fl.trace("whoops, no screens.");
}
See also
document.screenOutline
document.arrange()
Availability
Flash MX 2004.
Usage
document.arrange( arrangeMode )
Parameters
arrangeMode Specifies the direction in which to move the selection. Acceptable values are
"back", "backward", "forward", and "front". It provides the same capabilities as these
options provide on the Modify >Arrange menu.
Returns
Nothing.
Description
Method; arranges the selection on the Stage. This method applies only to non-shape objects.
80Objects
Example
The following example moves the current selection to the front:
fl.getDocumentDOM().arrange("front");
document.autoLabel
Availability
Flash MX 2004.
Usage
document.autoLabel
Description
Property; a Boolean value that is equivalent to the Auto Label check box in the Accessibility
panel. You can use this property to tell Flash to automatically label objects on the Stage with
the text associated with them.
Example
The following example gets the value of the autoLabel property and displays the result in the
Output panel:
var isAutoLabel = fl.getDocumentDOM().autoLabel;
fl.trace(isAutoLabel);
The following example sets the autoLabel property to true, telling Flash to automatically
label objects on the Stage:
fl.getDocumentDOM().autoLabel = true;
document.backgroundColor
Availability
Flash MX 2004.
Usage
document.backgroundColor
Description
Property; the color of the background, in one of the following formats:
■ A string in the format "#RRGGBB" or "#RRGGBBAA"
■ A hexadecimal number in the format 0xRRGGBB
■ An integer that represents the decimal equivalent of a hexadecimal number
Document object81
Example
The following example sets the background color to black:
fl.getDocumentDOM().backgroundColor = '#000000';
document.breakApart()
Availability
Flash MX 2004.
Usage
document.breakApart()
Parameters
None.
Returns
Nothing.
Description
Method; performs a break-apart operation on the current selection.
Example
The following example breaks apart the current selection:
fl.getDocumentDOM().breakApart();
document.canEditSymbol()
Availability
Flash MX 2004.
Usage
document.canEditSymbol()
Parameters
None.
Returns
A Boolean value: true if the Edit Symbols menu and functionality are available for use; false
otherwise.
82Objects
Description
Method; indicates whether the Edit Symbols menu and functionality are enabled. This is not
related to whether the selection can be edited. This method should not be used to test
whether
Example
fl.getDocumentDOM().enterEditMode() is allowed.
The following example displays in the Output panel the state of the Edit Symbols menu and
functionality:
A Boolean value: true if you can use the document.revert() or fl.revertDocument()
methods successfully;
false otherwise.
Description
Method; determines whether you can use the document.revert() or
fl.revertDocument() method successfully.
Example
The following example checks whether the current document can revert to the previously
saved version. If so,
if(fl.getDocumentDOM().canRevert()){
fl.getDocumentDOM().revert();
}
fl.getDocumentDOM().revert() restores the previously saved version.
Document object83
document.canTestMovie()
Availability
Flash MX 2004.
Usage
document.canTestMovie()
Parameters
None.
Returns
A Boolean value: true if you can use the document.testMovie() method successfully:
false otherwise.
Description
Method; determines whether you can use the document.testMovie() method successfully.
Example
The following example tests whether fl.getDocumentDOM().testMovie() can be used. If
so, it calls the method.
if(fl.getDocumentDOM().canTestMovie()){
fl.getDocumentDOM().testMovie();
}
See also
document.canTestScene(), document.testScene()
document.canTestScene()
Availability
Flash MX 2004.
Usage
document.canTestScene()
Parameters
None.
84Objects
Returns
A Boolean value: true if you can use the document.testScene() method successfully;
false otherwise.
Description
Method; determines whether you can use the document.testScene() method successfully.
Example
The following example first tests whether fl.getDocumentDOM().testScene() can be used
successfully. If so, it calls the method.
if(fl.getDocumentDOM().canTestScene()){
fl.getDocumentDOM().testScene();
}
See also
document.canTestMovie(), document.testMovie()
document.changeFilterOrder()
Availability
Flash 8.
Usage
document.changeFilterOrder( oldIndex, newIndex )
Parameters
oldIndex An integer that represents the current zero-based index position of the filter you
want to reposition in the Filters list.
newIndex An integer that represents the new index position of the filter in the list.
Returns
Nothing.
Description
Method; changes the index of the filter in the Filter list. Any filters above or below newIndex
are shifted up or down accordingly. For example, using the filters shown below, if you issue
the command
fl.getDocumentDOM().changeFilterOrder(3, 0), the filters are rearranged
An object for the newly created symbol, or null if it cannot create the symbol.
Document object89
Description
Method; converts the selected Stage item(s) to a new symbol. For information on defining
linkage and shared asset properties for a symbol, see Item object.
Example
The following examples create a movie clip symbol with a specified name, a button symbol
with a specified name, and a movie clip symbol with a default name:
Property; an integer that specifies the index of the active timeline. You can set the active
timeline by changing the value of this property; the effect is almost equivalent to calling
document.editScene(). The only difference is that you don’t get an error message if the
index of the timeline is not valid; the property is simply not set, which causes silent failure.
Example
The following example displays the index of the current timeline.
var myCurrentTL = fl.getDocumentDOM().currentTimeline;
fl.trace("The index of the current timeline is: "+ myCurrentTL);
Document object91
The following example changes the active timeline from the main timeline to a scene named
"myScene".
var i = 0;
var curTimelines = fl.getDocumentDOM().timelines;
while(i < fl.getDocumentDOM().timelines.length){
if(curTimelines[i].name == "myScene"){
fl.getDocumentDOM().currentTimeline = i;
}
++i;
}
See also
document.getTimeline()
document.deleteEnvelope()
Availability
Flash 8.
Usage
document.deleteEnvelope();
Parameters
None.
Returns
A Boolean value: true if successful; false otherwise.
Description
Method; deletes the envelope (bounding box that contains one or more objects) from the
selected objects.
Example
The following example deletes the envelope from the selected objects:
An integer that is the index of the new current profile. If a new profile is not available, the
method leaves the current profile unchanged and returns its index.
Description
Method; deletes the currently active profile, if there is more than one. There must be at least
one profile left.
Example
The following example deletes the currently active profile, if there is more than one, and
displays the index of the new currently active profile:
A Boolean value: true if the scene is successfully deleted; false otherwise.
Document object93
Description
Method; deletes the current scene (Timeline object) and, if the deleted scene was not the last
one, sets the next scene as the current Timeline object. If the deleted scene was the last one, it
sets the first object as the current Timeline object. If only one Timeline object (scene) exists, it
returns the value
Example
false.
Assuming there are three scenes (Scene0, Scene1, and Scene2) in the current document, the
following example makes
fl.getDocumentDOM().editScene(2);
var success = fl.getDocumentDOM().deleteScene();
Scene2 the current scene and then deletes it:
document.deleteSelection()
Availability
Flash MX 2004.
Usage
document.deleteSelection()
Parameters
None.
Returns
Nothing.
Description
Method; deletes the current selection on the Stage. Displays an error message if there is no
selection.
Example
The following example deletes the current selection in the document:
fl.getDocumentDOM().deleteSelection();
94Objects
document.description
Availability
Flash MX 2004.
Usage
document.description
Description
Property; a string that is equivalent to the Description field in the Accessibility panel. The
description is read by the screen reader.
Example
The following example sets the description of the document:
fl.getDocumentDOM().description= "This is the main movie";
The following example gets the description of the document and displays it in the Output
panel:
fl.trace(fl.getDocumentDOM().description);
document.disableAllFilters()
Availability
Flash 8.
Usage
document.disableAllFilters()
Parameters
None.
Returns
Nothing.
Description
Method; disables all filters on the selected objects.
Document object95
Example
The following example disables all filters on the selected objects:
Method; performs a distribute-to-layers operation on the current selection—equivalent to
selecting Distribute to Layers. This method displays an error if there is no selection.
Example
The following example distributes the current selection to layers:
fl.getDocumentDOM().distributeToLayers();
document.documentHasData()
Availability
Flash MX 2004.
Usage
document.documentHasData( name )
Parameters
name A string that specifies the name of the data to check.
Returns
A Boolean value: true if the document has persistent data; false otherwise.
Description
Method; checks the document for persistent data with the specified name.
Example
The following example checks the document for persistent data with the name "myData":
var hasData = fl.getDocumentDOM().documentHasData("myData");