As a user of Adobe® Flash® Professional CC, you may be familiar with Adobe® ActionScript®, which lets you create
scripts that execute at run time in Adobe® Flash® Player. The Flash JavaScript application programming interface
(JavaScript API or JSAPI) described in this document is a complementary programming tool that lets you create scripts
that run in the Flash 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 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). This functionality is different from the ActionScript language, which lets
you write scripts to perform actions in the Flash Player environment (that is, while a SWF file is playing). This
functionality is also different from JavaScript commands that you might use in pages displayed in a web browser.
1
Using the JavaScript API, you can write Flash application scripts to help streamline the authoring process. For
example, you can write scripts to automate repetitive tasks or add custom tools to the Tools panel.
The Flash JavaScript API is designed to resemble the Adobe® Dreamweaver® and Adobe® 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 have an effect.
The JavaScript API also contains methods that let you implement extensibility using a combination of JavaScript and
custom C code. For more information, see
The JavaScript interpreter in Flash is the Mozilla SpiderMonkey engine, version 1.8, 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.
“C-Level Extensibility” on page 591.
Creating JSFL files
You can use Adobe Flash Professional 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. To write a script, select File
> New > Flash JavaScript File.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
You can also create a JSFL file by selecting commands in the History panel. Then click the Save button in the History
panel or select Save As Command from the panel menu. The command (JSFL) file is saved in the Commands folder
“Saving JSFL files” on page 2). You can then open the file and edit it the same as any other script file.
(see
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.
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 panel menu.
To view JavaScript commands in the History panel:
• Select View > JavaScript in Panel from the panel 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:
Macintosh HD/Users/username/Library/Application Support/Adobe/Flash CC/language/Configuration/
To determine the location of the Configuration folder, use fl.configDirectory or fl.configURI, as shown in the
following example:
// store directory to a variable
var configDir = fl.configDirectory;
// display directory in the Output panel
fl.trace(fl.configDirectory);
Within the Configuration folder, the following folders can contain scripts that you can access in the authoring
environment: Behaviors (to support the user interface for behaviors); Commands (for scripts that appear on the
Commands menu); JavaScript (for scripts used by Script Assist to populate the user interface controls); 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 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
extensible tool, close and restart Flash, or else use the
fl.reloadTools() command. However, if you used a script to
add an extensible tool to the Tools panel and you then edit the script, 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.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
There are two locations where you can store command and tool files so they can be accessed in the authoring
environment.
• For scripts that appear as items in the Commands menu, save the JSFL file in the Commands folder in the following
location:
Operating systemLocation
Windows 7boot drive\Users\username\AppData\Local\Adobe\Flash CC\language\Configuration\Commands
3
Windows Vistaboot drive\Users\username\Local Settings\Application Data\Adobe\Flash
Mac OS XMacintosh HD/Users/userName/Library/Application Support/Adobe/Flash
CC\language\Configuration\Commands
CC/language/Configuration/Commands
• For scripts that appear as extensible tools in the Tools panel, save the JSFL file in the Tools folder in the following
location:
Operating systemLocation
Windows 7boot drive\Users\username\AppData\Local\Adobe\Flash CC\language\Configuration\Tools
Windows Vistaboot drive\Users\username\Local Settings\Application Data\Adobe\Flash
Mac OS XMacintosh HD/Users/userName/Library/Application Support/Adobe/Flash
CC\language\Configuration\Tools
CC/language/Configuration/Tools
If a JSFL file has other files that go with it, such as XML files, store them in the same directory as the JSFL file.
Running scripts
There are several ways to run scripts. The most common ways are explained in this section.
To run a script that you are currently viewing or editing:
• Right-click (Command-click on the Macintosh) and choose Run Script.
• Click the Run Script icon on the Script window toolbar.
This option lets you run a script before you have saved it. This option also lets you run a script even if no FLA files are open.
To run a script that is in the Commands folder, do one of the following:
• From the authoring environment, 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 JSFL files” on page 2).
You can add individual JavaScript API commands to ActionScript files by using the MMExecute() function, which is
documented in the ActionScript 3.0 Language and Components Reference. However, the
MMExecute() function has an
effect only when it is used in the context of a 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.
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.
To run a script from the command line on Windows:
• Use the following syntax (add path information as required):
"flash.exe" myTestFile.jsfl [-AlwaysRunJSFL]
4
Use the -AlwaysRunJSFL option to bypass the dialog box that prompts you to confirm script execution.
To run a script from the “Terminal” application on the Macintosh, use either of the following:
• Use the following osacript 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 include the following text in
a file named myScript:
tell application "flash"
open alias "Mac OS X:Users:user:myTestFile.jsfl"
end tell
Then, to run the script, you would use this command:
osascript myScript
• Use the flashpro command:
/Applications/Adobe\ Flash\ CC/flashpro.app/Contents/MacOS/flashpro <path of the jsfl file>
What’s new in the JavaScript API
The following section lists new objects, methods, and properties in Flash CC. It also lists changes in Flash CS5, CS5.5,
and CS6.
If you have not used the JavaScript API before, you might want to skip this section and go directly to “JavaScript API
objects” on page 10).
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
New methods and properties in Flash CC
The following methods and properties for existing objects are new in Flash Profesional CC:
• Tween Object
• Tween.getColorTransform( )
• Tween.getFilters( )
• Tween.getGeometricTransform()
• Tween.getShape( )
• Tween.duration
• Tween.startFrame
• Tween.tweenType
• CompiledClipInstance object
• CompiledClipInstance.backgroundColor
• CompiledClipInstance.blendMode
• CompiledClipInstance.brightness
• CompiledClipInstance.cacheAsBitmap
• CompiledClipInstance.colorAlphaAmount
• CompiledClipInstance.colorAlphaPercent
• CompiledClipInstance.colorBlueAmount
• CompiledClipInstance.colorBluePercent
• CompiledClipInstance.colorGreenAmount
• CompiledClipInstance.colorGreenPercent
• CompiledClipInstance.colorMode
• CompiledClipInstance.colorRedAmount
• CompiledClipInstance.colorRedPercent
• CompiledClipInstance.filters
• CompiledClipInstance.tintColor
• CompiledClipInstance.tintPercent
• CompiledClipInstance.useBackgroundColor
• CompiledClipInstance.visible
• Document object
• Document.convertSelectionToBitmap()
• Document.distributeToKeyframes()
• Document.exportVideo()
• Document.getPublishDocumentData()
• Document.getTelemetryForSwf()
• Document.importFile() showDialog and showImporterUI properties
• Document.setPublishDocumenData()
5
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
• Element object
• Element.getPublishPersistentData()
• Element.setPublishPersistentData()
• flash object (fl)
• Flash.addEventListener()prePublish, postPublish, selectionChanged, and dpiChanged events
• fl.getThemeColor()
• fl.getThemeColorParameters()
• fl.getThemeFontInfo()
• fl.setPrefBoolean()
• fl.toggleBreakPoint()
• fl.xmlPanel()
• fl.xmlPanelFromString()
• Frame object
• Frame.convertToFrameByFrameAnimation()
• Frame.getSoundEnvelope()
• Frame.getSoundEnvelopeLimits()
• Frame.setSoundEnvelope()
• Frame.setSoundEnvelopeLimits()
• Frame.isEmpty()
• Item object
• item.getPublishData()
• item.setPublishData()
• library object
• library.unusedItems
• swfPanel object
• swfPanel.dpiScaleFactorX
• swfPanel.dpiScaleFactorY
• swfPanel.reload()
• SymbolInstance object
• SymbolInstance.brightness
• SymbolInstance.tintColor
• SymbolInstance.tintPercent
• Timeline object
• getBounds()
6
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
Dropped methods and properties in Flash CC
The following methods and properties for existing objects are dropped in Flash Professional CC:
• ActionsPanel.getClassForObject()
• ActionsPanel.getScriptAssistMode()
• ActionsPanel.setScriptAssistMode()
• CompiledClipInstance.actionscript
• fl.reloadEffects()
• fl.resetPackagePaths()
• document.activeEffect
• document.allowScreens()
• document.drawingLayer
• document.importSWF()
• document.loadCuePointXML()
• document.packagePaths
• document.saveAndCompact()
• document.screenType
• library.importEmbeddedSWF()
• SymbolInstance.actionscript
7
New objects in Flash CS6
The following object is new in Flash CS6:
• SpriteSheetExporter object
New methods and properties in Flash CS6
The following methods and properties for existing objects are new in Flash Pro CS6:
• BitmapItem object
• bitmapItem.exportToFile()quality parameter
• bitmapItem.hasValidAlphaLayer
• bitmapItem.lastModifiedDate
• Document object
• document.exportInstanceToLibrary()
• document.exportInstanceToPNGSequence()
• document.getSWFPathFromProfile()
• document.saveAsCopy()
• document.swfJPEGQuality
• flash object (fl)
• fl.spriteSheetExporter
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
• Layer object
• layer.animationType
• Math object
• Math.transformPoint()
• Shape object
• shape.isFloating
• SoundItem object
• soundItem.lastModifiedDate
• SymbolInstance object
• symbolInstance.is3D
• SymbolItem object
• symbolItem.exportToLibrary()
• symbolItem.exportToPNGSequence()
• symbolItem.lastModifiedDate
• Text object
• text.filters
• VideoItem object
• videoItem.lastModifiedDate
8
New methods and properties in Flash CS5 and CS5.5
The following methods and properties for existing objects are new in Flash Pro CS5:
• Document object
• document.debugMovie()
• document.loadCuepointXML()
• flash object (fl)
• fl.languageCode
• fl.toggleBreakpoint
• Frame object
• frame.convertMotionObjectTo2D()
• frame.convertMotionObjectTo3D()
• frame.getMotionObjectXML()
• frame.hasMotionPath()
• frame.isMotionObject()
• frame.is3DMotionObject()
• frame.selectMotionPath()
• frame.setMotionObjectDuration()
• frame.setMotionObjectXML()
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
• frame.tweenInstanceName
• Timeline object
• timeline.createMotionObject()
• timeline.libraryItem
• timeline.removeMotionObject()
• timeline.startPlayback
• timeline.stopPlayback
The following methods and properties for existing objects are new in Flash Pro CS5.5:
• SymbolInstance object
• symbolInstance.bitmapRenderMode
• symbolInstance.backgroundColor
• symbolInstance.usesBackgroundColor
• symbolInstance.visible
• Timeline object
• timeline.copyLayers()
• timeline.cutLayers()
• timeline.duplicateLayers()
• timeline.pasteLayers()
• flash object (fl)
• fl.getSwfPanel()
• fl.installedPlayers()
• fl.publishCacheEnabled
• fl.publishCacheDiskSizeMax
• fl.publishCacheMemorySizeMax
• fl.publishCacheMemoryEntrySizeLimit
• fl.clearPublishCache()
• swfPanel object
• swfPanel.setFocus()
9
Other changes in Flash CS5 and CS5.5
The following methods and properties are updated in Flash CS5:
• fl.openScript()
• fl.publishDocument()
• fontItem.embedRanges
• fontItem.embeddedCharacters
• fontItem.embedVariantGlyphs
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
The following objects and method are no longer available in Flash CS5:
• Screen object
• ScreenOutline object
• document.canSaveAVersion()
• document.revertToLastVersion()
• document.saveAVersion()
• document.synchronizeWithHeadVersion()
• fl.downloadLatestVersion()
• fl.revertDocumentToLastVersion()
• fl.saveAVersionOfDocument()
• fl.synchronizeDocumentWithHeadVersion()
JavaScript API objects
10
This section provides a summary of the objects available in the Flash JavaScript API and how to begin working with
them. All standard JavaScript commands are also available when working with the JavaScript API.
The following table briefly describes each of the objects in the JavaScript API. The objects are listed in alphabetical
order.
ObjectDescription
actionsPanel objectThe actionsPanel object represents the currently displayed Actions panel.
BitmapInstance object The BitmapInstance object is a subclass of the Instance object and represents a bitmap in a
BitmapItem object A BitmapItem object refers to a bitmap in the library of a document. The BitmapItem object is
CompiledClipInstance object The CompiledClipInstance object is a subclass of the Instance object.
compilerErrors objectThe compilerErrors object represents the Compiler Errors panel. It is a property of the flash
ComponentInstance objectThe ComponentInstance object is a subclass of the SymbolInstance object and represents a
componentsPanel objectThe componentsPanel object, which represents the Components panel, is a property of the
Contour objectA Contour object represents a closed path of half edges on the boundary of a shape.
Document objectThe Document object represents the Stage.
frame.
a subclass of the Item object.
object (fl.compilerErrors).
component in a frame.
flash object (
fl.componentsPanel).
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.
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.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
ObjectDescription
Filter objectThe Filter object contains all the properties for all filters.
flash object (fl)The flash object represents the Flash application.
11
FLfile objectThe FLfile object lets you write Flash extensions that can access, modify, and remove files and
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 (fl.Math).
Matrix objectThe Matrix object represents a transformation matrix.
outputPanel objectThe outputPanel object represents the Output panel, which displays troubleshooting
Oval objectThe Oval object is a shape that is drawn using the Oval tool. To determine if an item is an Oval
Parameter objectThe Parameter object type is accessed from the screen.parameters array (which
folders on the local file system.
information such as syntax errors. It is a property of the flash object (
object, use
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).
shape.isOvalObject.
fl.outputPanel).
Path objectThe Path object defines a sequence of line segments (straight, curved, or both), which you
presetItem objectThe presetItem object represents an item (preset or folder) in the Motion Presets panel.
presetPanel objectThe presetPanel object represents the Motion Presets panel (Window > Motion Presets). It is a
Rectangle objectThe Rectangle object is a shape that is drawn using the Rectangle tool. To determine if an item
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.
Shape objectThe Shape object is a subclass of the Element object. The Shape object provides more precise
SoundItem objectThe SoundItem object is a subclass of the Item object. It represents a library item used to create
Stroke objectThe Stroke object contains all the settings for a stroke, including the custom settings.
swfPanel objectThe swfPanel object represents a Windows SWF panel. Windows SWF panels are SWF files that
SymbolInstance objectThe SymbolInstance object is a subclass of the Instance object and represents a symbol in a
typically use when creating extensible tools.
property of the flash object (
is a Rectangle object, use
control than the drawing APIs for manipulating or creating geometry on the Stage.
a sound.
implement applications you can run from the Flash authoring environment. The array of
swfPanel objects is a property of the flash object (
frame.
fl.presetPanel).
shape.isRectangleObject.
fl.swfPanels).
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
ObjectDescription
SymbolItem objectThe SymbolItem object is a subclass of the Item object.
Text objectThe Text object represents a single text item in a document.
12
TextAttrs objectThe TextAttrs object contains all the properties of text that can be applied to a subselection.
TextRun objectThe TextRun object represents a run of characters that have attributes that match all of the
Timeline objectThe Timeline object represents the Flash timeline, which can be accessed for the current
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
This object is a subclass of the Text object.
properties in the TextAttrs object.
document by
accept or cancel out of one.
fl.getDocumentDOM().getTimeline().
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 18) 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
When referring to the flash object, you can use flash or fl. For example, to close all open FLA files, you can use either
of the following statements:
FLfile object and flash object (fl).
flash.closeAll();
fl.closeAll();
The flash object contains the following child objects:
ObjectHow to access
actionsPanel objectUse fl.actionsPanel to access the actionsPanel object. This object corresponds to the Actions
compilerErrors objectUse fl.compilerErrors to access the compilerErrors object. This object corresponds to the
componentsPanel objectUse fl.componentsPanel to access the componentsPanel object. This object corresponds to the
Document objectUse fl.documents to retrieve an array of all the open documents; use fl.documents[index] to
drawingLayer objectUse fl.drawingLayer to access the drawingLayer object.
Math objectUse fl.Math to access the Math object.
outputPanel objectUse fl.outputPanel to access the outputPanel object. This object corresponds to the Output panel
panel in the Flash authoring environment.
Compiler Errors panel in the Flash authoring environment.
Components panel in the Flash authoring environment.
access a particular document; use
with focus).
in the Flash authoring environment.
fl.getDocumentDOM() to access the current document (the one
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
ObjectHow to access
13
presetPanel objectUse fl.presetPanel to access the presetPanel object. This object corresponds to the Motion Presets
panel (Window
swfPanel objectUse fl.swfPanels to access an array of swfPanel objects. These objects correspond to Window SWF
panels.
Tools objectUse fl.tools to access an array of Tools objects.
XMLUI objectUse 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.
> Motion Presets).
The Document object
An important property of the top-level flash object is the fl.documents property. This property contains an array of
Document objects, each of which represents 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 flash.documents[0] or 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 flash.findDocumentIndex(nameOfDocument) or
fl.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 fl.documents array, iterate through the array and test each document for its
document.name property. See fl.documents and document.name.
All the objects in the DOM that aren’t listed in the previous table (see “The Flash Document Object Model” on page 12)
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
document.library, library object, library.itemslibrary.items, and Item object.
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);
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
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
document.selection property 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:
var element = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (element) {
element.width = element.width*2;
element.height = element.height*2;
}
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;
}
14
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. These properties are noted in the following
outline.
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 parent 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. These relationships are illustrated in the following outline:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
01 Top-Level Functions and Methods
01 FLfile object
01 flash object (fl)
02 compilerErrors object
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)
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 array)
06 SymbolInstance object (subclass of Instance object)
06 Text object (subclass of Element object)
07 TextRun object (text.textRuns array)
08 TextAttrs object (textRun.textAttrs array)
06 Shape object (subclass of Element object)
07 Oval object
07 Rectangle object
07 Contour object (shape.contours array)
08 HalfEdge object
09 Vertex object
09 Edge object
Several sample JSFL implementations are available for Adobe Flash Professional CS5 and CS5.5. You can review and
install these files to familiarize yourself with the JavaScript API. The samples are in a folder named
Samples/ExtendingFlash within the Samples.zip file located at
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 2).
2 In a Flash document (FLA file), select a shape object.
3 Select Commands > Shape to run the script.
Sample get and set filters command
A sample JavaScript API script named filtersGetSet.jsfl is located in the ExtendingFlash/filtersGetSet folder (see
“Sample implementations” above). 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 2).
2 In a Flash document (FLA file), select a text, movie clip, or button object.
3 Select Commands > filtersGetSet to run the script.
www.adobe.com/go/learn_fl_samples.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Introduction
Sample PolyStar tool
A sample JavaScript API script named PolyStar.jsfl is located in the ExtendingFlash/PolyStar folder (see “Sample
implementations” above).
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.
Sample Trace Bitmap panel
A set of files named TraceBitmap.fla and TraceBitmap.swf are located in the ExtendingFlash/TraceBitmapPanel folder
(see “Sample implementations” above). These files illustrate how to design and build a panel to control the functions
of Flash. They also show the use of the
script.
To run the TraceBitmap sample:
1 If Flash is running, exit from Flash.
2 Copy the TraceBitmap.swf file to the WindowSWF folder, which is a subdirectory of the Configuration folder (see
“Saving JSFL files” on page 2). For example, on Windows XP, the folder is in boot drive\Documents and
Settings\user\Local Settings\Application Data\Adobe\Flash CS5\language\Configuration\WindowSWF.
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.
MMExecute() function to call JavaScript commands from an ActionScript
17
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” above). For more information about building DLLs, see
“C-Level Extensibility” on page 591.
Last updated 12/6/2013
Chapter 2: Top-Level Functions and
Methods
Top-level summary
About this section
This section describes the top-level functions and methods that are available when you use the Adobe Flash JavaScript
application programming interface (JavaScript API). For information about where to store JavaScript API files, see
“Saving JSFL files” on page 2.
Global methods
The following methods can be called from any JavaScript API script:
alert()
confirm()
prompt()
18
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.
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()
19
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()
configureTool()
Availability
Flash MX 2004.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
Usage
function configureTool() {
// statements
}
Parameters
None.
Returns
Nothing.
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:
function configureTool() {
theTool = fl.tools.activeTool;
theTool.setToolName("myTool");
theTool.setIcon("myTool.png");
theTool.setMenuString("My Tool's menu string");
theTool.setToolTip("my tool's tool tip");
theTool.setOptionsFile( "mtTool.xml" );
}
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.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
Description
Method; displays a string in a modal Alert dialog box, along with OK and Cancel buttons.
Note: If there are no documents (FLA files) open, this method fails with an error condition.
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.
21
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" );
}
keyDown()
Availability
Flash MX 2004.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
Usage
function keyDown() {
// statements
}
Parameters
None.
Returns
Nothing.
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");
}
22
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.
Example
The following example displays a message in the Output panel when the extensible tool is active and a key is released.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
function keyUp() {
fl.trace("Key is released");
}
See also
keyDown()
mouseDoubleClick()
Availability
Flash MX 2004.
Usage
function mouseDoubleClick() {
// statements
}
Parameters
None.
23
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");
}
mouseDown()
Availability
Flash MX 2004.
Usage
function mouseDown( [ pt ] ) {
// statements
}
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
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);
}
24
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.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
function mouseMove() {
fl.trace("moving");
}
function mouseMove(pt) {
fl.trace("x = "+ pt.x + " :: y = " + pt.y);
}
mouseUp()
Availability
Flash MX 2004.
Usage
function mouseUp() {
// statements
}
Parameters
None.
25
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
}
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-Level Functions and Methods
Parameters
None.
Returns
Nothing.
Description
Function; called when the extensible tool is active and the user changes its options in the Property inspector. You can
tools.activeTool property to query the current values of the options (see tools.activeTool).
use the
Example
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;
}
26
prompt()
Availability
Flash MX 2004.
Usage
prompt(promptMsg [,text])
Parameters
promptMsg A string to display in the Prompt dialog box (limited to 256 characters in Mac 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.
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()
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Top-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
to which integer values, see
tools.setCursor() to specify the pointer to use. For a list that shows which pointers correspond
tools.setCursor().
27
Example
function setCursor() {
fl.tools.setCursor( 1 );
}
Last updated 12/6/2013
Chapter 3: actionsPanel object
actionsPanel summary
Availability
Flash CS3 Professional.
Description
The actionsPanel object, which represents the currently displayed Actions panel, is a property of the flash object (see
fl.actionsPanel).
Method summary
The following methods can be used with the actionsPanel object:
MethodDescription
28
actionsPanel.getClassForObject() dropped
actionsPanel.getScriptAssistMode() dropped
actionsPanel.getSelectedText()Returns the text that is currently selected in the Actions panel.
actionsPanel.getText()Returns the text in the Actions panel.
actionsPanel.hasSelection()Specifies whether any text is currently selected in the Actions panel.
actionsPanel.replaceSelectedText()Replaces the currently selected text with specified text.
actionsPanel.setScriptAssistMode() dropped
actionsPanel.setSelection()Selects a specified set of characters in the Actions panel.
actionsPanel.setText()Clears any text in the Actions panel and then adds specified text.
Dropped in Flash Professional CC.
Dropped in Flash Professional CC.
Dropped in Flash Professional CC.
actionsPanel.getClassForObject() - dropped
Availability
Flash CS3 Professional. Dropped in Flash Professional CC.
Usage
actionsPanel.getClassForObject(ASvariableName)
Parameters
ASvariableName A string that represents the name of an ActionScript variable.
Returns
A string that represents the class of which ASvariableName is a member.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
actionsPanel object
Description
Dropped in Flash Professional CC.
Method; returns the class of the specified variable, which must be defined in the currently displayed Actions panel. In
addition, the cursor or selected text in the Actions panel must be positioned after the variable definition.
Example
The following example displays the class assigned to the variable myVar, if the cursor is positioned after the statement
var myVar:ActivityEvent; in the Actions panel.
// Place the following code in the Actions panel,
// and position the cursor somewhere after the end of the line
var myVar:ActivityEvent;
// Place the following code in the JSFL file
var theClass = fl.actionsPanel.getClassForObject("myVar");
fl.trace(theClass); // traces: "ActivityEvent"
actionsPanel.getScriptAssistMode() - dropped
29
Availability
Flash CS3 Professional. Dropped in Flash Professional CC.
Usage
actionsPanel.getScriptAssistMode()
Parameters
None.
Returns
A Boolean value that specifies whether Script Assist mode is enabled (true) or not (false).
Description
Dropped in Flash Professional CC.
Method; specifies whether Script Assist mode is enabled.
Example
The following example displays a message if Script Assist mode is not enabled.
mAssist = fl.actionsPanel.getScriptAssistMode();
if (!mAssist) {
alert("For more guidance when writing ActionScript code, try Script Assist mode");
}
See also
actionsPanel.setScriptAssistMode() - dropped
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
actionsPanel object
actionsPanel.getSelectedText()
Availability
Flash CS3 Professional.
Usage
actionsPanel.getSelectedText()
Parameters
None.
Returns
A string that contains the text that is currently selected in the Actions panel.
Description
Method; returns the text that is currently selected in the Actions panel.
Example
The following example displays the text that is currently selected in the Actions panel.
30
var apText = fl.actionsPanel.getSelectedText();
fl.trace(apText);
A Boolean value that specifies whether any text is selected in the Actions panel (true) or not (false).
31
Description
Method; specifies whether any text is currently selected in the Actions panel.
Example
The following example displays text that is currently selected in the Actions panel. If no text is selected, it displays all
the text in the Actions panel.
if (fl.actionsPanel.hasSelection()) {
var apText = fl.actionsPanel.getSelectedText();
}
else {
var apText = fl.actionsPanel.getText();
}
fl.trace(apText);
replacementText A string that represents text to replace selected text in the Actions panel.
Returns
A Boolean value of true if the Actions panel is found; false otherwise.
Description
Method; replaces the currently selected text with the text specified in replacementText. If replacementText contains
more characters than the selected text, any characters following the selected text now follow replacementText; that is,
they are not overwritten.
Example
The following example replaces currently selected text in the Actions panel.
startIndex A zero-based integer that specifies the first character to be selected.
numberOfChars An integer that specifies how many characters to select.
Returns
A Boolean value that specifies whether the requested characters can be selected (true) or not (false).
Description
Method; selects a specified set of characters in the Actions panel.
Example
The following example replaces the characters “2006” in the Actions panel with the specified text.
// Type the following as the first line in the Actions panel
// 2006 - Addresses user request 40196
// Type the following in the JSFL file
fl.actionsPanel.setSelection(3,4);
fl.actionsPanel.replaceSelectedText("// Last updated: 2007");
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
In addition to the Instance object methods, you can use the following methods with the BitmapInstance object:
MethodDescription
35
bitmapInstance.getBits()Lets you create bitmap effects by getting the bits out of the bitmap,
bitmapInstance.setBits()Sets the bits of an existing bitmap element.
Property summary
In addition to the Instance object properties, you can use the following properties with the BitmapInstance object:
PropertyDescription
bitmapInstance.hPixelsRead-only; an integer that represents the width of the bitmap, in pixels.
bitmapInstance.vPixelsRead-only; an integer that represents the height of the bitmap, in pixels.
manipulating them, and then returning them to Flash.
bitmapInstance.getBits()
Availability
Flash MX 2004.
Usage
bitmapInstance.getBits()
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
array is the length of the color table.
cTab element is an array of color values of the form "#RRGGBB". The length of the
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapInstance object
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
“C-Level Extensibility”
on page 591
Description
Method; lets you create bitmap effects by getting the bits out of the bitmap, manipulating them, and then returning
them to Flash.
Example
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:
Read-only property; an integer that represents the width of the bitmap—that is, the number of pixels in the horizontal
dimension.
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
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapInstance object
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
propertiesare integers. The
depth of 8 or less and is a string that represents a color value in the form "#RRGGBB".
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.
Returns
Nothing.
bits property is a byte array. The cTab property is required only for bitmaps with a bit
37
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.
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.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapInstance object
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
38
Last updated 12/6/2013
Chapter 5: BitmapItem object
bitmapItem summary
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
In addition to the Item object properties, the BitmapItem object has following properties:
39
PropertyDescription
bitmapItem.allowSmoothingA Boolean value that specifies whether to allow smoothing
bitmapItem.compressionTypeA string that determines the type of image compression
bitmapItem.fileLastModifiedDateThe number of seconds that have elapsed between
bitmapItem.hasValidAlphaLayerA Boolean value indicating whether the bitmap has an
bitmapItem.hPixelsSpecifies the width of the bitmap, in pixels.
bitmapItem.lastModifiedDateThe modification date of the bitmap item in the Library.
bitmapItem.originalCompressionTypeSpecifies whether the item was imported as an jpeg file.
bitmapItem.sourceFileExistsSpecifies whether the file that was imported to the Library
bitmapItem.sourceFileIsCurrentSpecifies whether the file modification date of the Library
bitmapItem.sourceFilePathThe path and name of the file that was imported into the
bitmapItem.useDeblocking Specifies whether deblocking is enabled.
of a bitmap.
applied to the bitmap.
January 1, 1970 and the modification date of the original
file.
alpha channel.
still exists in the location from where it was imported.
item is the same as the modification date on disk of the file
that was imported.
Library.
bitmapItem.useImportedJPEGQualityA Boolean value that specifies whether to use the default
bitmapItem.vPixelsSpecifies the height of the bitmap, in pixels.
imported JPEG quality.
Method summary
In addition to the Item object properties, the BitmapItem object has following methods:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapItem object
MethodDescription
bitmapItem.exportToFile()Exports the specified item to a PNG or JPG file.
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).
Example
The following code sets the allowSmoothing property of the first item in the library of the current document to true:
fileURI A string, expressed as a file:/// URI, that specifies the path and name of the exported file.
quality A number, from 1-100, that determines the quality of the exported image file. A higher number indicates
higher quality. The default is 80. New in Flash CS6 Professional.
Returns
A Boolean value of true if the file was exported successfully; false otherwise.
Description
Method; exports the specified item to a PNG or JPG file.
41
Example
Assuming the first item in the Library is a bitmap item, the following code exports it as a JPG file:
var imageFileURL = "file:///C|/exportTest/out.jpg";
var libItem = fl.getDocumentDOM().library.items[0];
libItem.exportToFile(imageFileURL);
bitmapItem.fileLastModifiedDate
Availability
Flash CS4 Professional.
Usage
bitmapItem.fileLastModifiedDate
Description
Read-only property; a string containing a hexadecimal number that represents the number of seconds that have
elapsed between January 1, 1970 and the modification date of the original file at the time the file was imported to the
library. If the file no longer exists, this value is "00000000".
Example
Assuming the first item in the Library is a bitmap item, the following code displays a hex number as described above.
var libItem = fl.getDocumentDOM().library.items[0];
fl.trace("Mod date when imported = " + libItem.fileLastModifiedDate);
Read-only property; a boolean indicating if a bitmap in the library has a valid/useful alpha channel. This flag will help
you decide if you should export the bitmap item as a PNG instead of a JPEG using the
function.
bitmapItem.exportToFile()
42
Example
The following code exports a library item with the proper file name extension depending on whether it has a valid
alpha layer.
var bitmapItem = fl.getDocumentDOM().library.items[0];
var uri = fl.browseForFileURI("open");
if (bitmapItem.hasValidAlphaLayer) uri += ".png";
Read-only property; an int that specifies the width of the bitmap, in pixels.
Example
The following code illustrates use of this property.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapItem object
// get the number of pixels in the horizontal dimension.
var bmItemObj = fl.getDocumentDOM().library.items[0];
var numHorizontalPixels = bmItemObj.hPixels;
See also
bitmapItem.vPixels
bitmapItem.lastModifiedDate
Availability
Flash Pro CS6.
Usage
bitmapItem.lastModifiedDate
Description
Read-only property; a hexadecimal value indicating the modification date and time of the bitmap item. This value is
incremented every time the bitmap item is imported. For example, selecting the Update button from the Bitmap
Properties dialog will trigger an import.
43
Example
Assuming the first item in the Library is a bitmap item, the following code displays a hex number as described above.
var libItem = fl.getDocumentDOM().library.items[0];
fl.trace("Mod date when imported = " + libItem.lastModifiedDate);
Read-only property; a string that specifies whether the specified item was imported as an jpeg file. Possible values for
this property are “photo” (for jpeg files) and “lossless” (for uncompressed file types such as GIF and PNG).
Example
Assuming that the first item in the Library is a bitmap item, the following code displays "photo" if the file was imported
into the Library as a jpeg file, or "lossless" if is was not:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapItem object
var libItem = fl.getDocumentDOM().library.items[0];
fl.trace("Imported compression type = "+ libItem.originalCompressionType);
See also
bitmapItem.compressionType
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.
44
Example
The following code sets the quality property of the first item in the library of the current document to 65:
Read-only property; a Boolean value of true if the file that was imported to the Library still exists in the location from
where it was imported;
Example
Assuming the first item in the Library is a bitmap item, the following code displays "true" if the file that was imported
into the Library still exists.
var libItem = fl.getDocumentDOM().library.items[0];
fl.trace("sourceFileExists = "+ libItem.sourceFileExists);
false otherwise.
See also
bitmapItem.sourceFileIsCurrent,
bitmapItem.sourceFilePath
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapItem object
bitmapItem.sourceFileIsCurrent
Availability
Flash CS4 Professional.
Usage
bitmapItem.sourceFileIsCurrent
Description
Read-only property; a Boolean value of true if the file modification date of the Library item is the same as the
modification date on disk of the file that was imported ;
Example
Assuming the first item in the Library is a bitmap item, the following code displays "true" if the file that was imported
has not been modified on disk since it was imported:
var libItem = fl.getDocumentDOM().library.items[0];
fl.trace("fileIsCurrent = "+ libItem.sourceFileIsCurrent);
Read-only property; a string, expressed as a file:/// URI, that represents the path and name of the file that was imported
into the Library.
Example
The following example displays the name and source file path of any items in the library that are of type "bitmap":
for (idx in fl.getDocumentDOM().library.items) {
if (fl.getDocumentDOM().library.items[idx].itemType == "bitmap") {
var myItem = fl.getDocumentDOM().library.items[idx];
fl.trace(myItem.name + " source is " + myItem.sourceFilePath);
}
}
See also
bitmapItem.sourceFileExists
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
BitmapItem object
bitmapItem.useDeblocking
Availability
Flash CS4 Professional.
Usage
bitmapItem.useDeblocking
Description
Property; a Boolean value that specifies whether deblocking is enabled (true) or not (false).
Example
Assuming the first item in the Library is a bitmap item, the following code enables deblocking for the item:
var libItem = fl.getDocumentDOM().library.items[0];
libItem.useDeblocking = true;
bitmapItem.useImportedJPEGQuality
46
Availability
Flash MX 2004.
Usage
bitmapItem.useImportedJPEGQuality
Description
Property; a Boolean value that specifies whether to use the default imported JPEG quality (true) or not (false).
Available only for JPEG compression.
Example
The following code sets the useImportedJPEGQuality property of the first item in the library of the current
document to
Read-only property; an int that specifies the height of the bitmap, in pixels.
Example
The following code illustrates use of this property.
// get the number of pixels in the vertical dimension
var bmitemObj = fl.getDocumentDOM().library.items[0];
var numHorizontalPixels = bmitemObj.vPixels;
See also
bitmapItem.hPixels
47
Last updated 12/6/2013
Chapter 6: CompiledClipInstance object
compiledClipInstance summary
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
In addition to the properties of the Instance object, the CompiledClipInstance object has the following properties:
48
PropertyDescription
compiledClipInstance.accNameA string that is equivalent to the Name field in the Accessibility panel.
compiledClipInstance.actionScript dropped
compiledClipInstance.backgroundColor A string that specifies the matte color when Opaque is selected.
compiledClipInstance.descriptionA string that is equivalent to the Description field in the Accessibility panel.
compiledClipInstance.blendModeA string that specifies the blend mode.
compiledClipInstance.brightnessAn int that contains the value set in the Color Effect Property Inspector for
compiledClipInstance.cacheAsBitmapA boolean that indicates whether to cache bitmaps.
compiledClipInstance.colorAlphaAmoun
t
compiledClipInstance.colorAlphaPerce
nt
compiledClipInstance.colorBlueAmount An int that reduces or increases the blue tint value by a constant amount.
compiledClipInstance.colorBluePercen
t
compiledClipInstance.colorGreenAmoun
t
compiledClipInstance.colorGreenPerce
nt
Dropped in Flash Professional CC.
brightness.
An int that reduces or increases the tint and alpha values by a constant
amount.
An int that reduces the tint and alpha values by a specified percentage.
An int that reduces the blue tint value by a specified percentage.
An int that reduces or increases the green tint value by a constant amount.
An int that reduces the green tint value by a specified percentage.
compiledClipInstance.colorModeA string that specifies the color mode, as identified in the Symbol Properties
compiledClipInstance.colorRedAmountAn int that reduces or increases the red tint value by a constant amount.
compiledClipInstance.colorRedPercent An int that reduces the green tint value by a specified percentage.
dialog.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
PropertyDescription
compiledClipInstance.descriptionA string that is equivalent to the Description field in the Accessibility panel.
compiledClipInstance.filtersAn array of Filter objects.
49
compiledClipInstance.forceSimpleA Boolean value that enables and disables the children of the object to be
compiledClipInstance.shortcutA string that is equivalent to the Shortcut field in the Accessibility panel.
compiledClipInstance.silentA Boolean value that enables or disables the accessibility of the object;
compiledClipInstance.tabIndexAn integer that is equivalent to the Tab Index field in the Accessibility panel.
compiledClipInstance.tintColorAa Color object that, when the Color Effect Property Inspector is using style
compiledClipInstance.tintPercentA string that, when the Color Effect Property Inspector is using style tint,
compiledClipInstance.useBackgroundCo
lor
compiledClipInstance.visibleA boolean that sets visibility.
accessible.
equivalent to the inverse logic of the Make Object Accessible setting in the
Accessibility panel.
tint, returns the color applied to the tint.
returns the tint percentage.
A boolean that sets the background color.
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 - dropped
Availability
Flash MX 2004. Dropped in Flash Professional CC.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Usage
compiledClipInstance.actionScript
Description
Dropped in Flash Professional CC.
Property; a string that represents the ActionScript for this instance; equivalent to symbolInstance.actionScript -
dropped.
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 instance.
fl.getDocumentDOM().selection[0].actionScript =
"on(click) {trace('button is clicked');}";
compiledClipInstance.backgroundColor
50
Availability
Flash ProfessionalCC.
Usage
compiledClipInstance.backgroundColor
Description
Property; a string that specifies the matte color when Opaque is selected. This is a string in hexadecimal #rrggbb format
or an integer containg the value.
Example
The following example illustrates getting the backgroundColor property:
var bitmapInstance = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
bitmapInstance.backgroundColor = "#000000";
compiledClipInstance.blendMode
Availability
Flash Professional CC.
Usage
compiledClipInstance.blendMode
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Description
Property; a string that specifies the blend mode. Valid blend modes are: normal, layer, darken, multiply, lighten,
screen, overlay, hardlight, add, subtract, difference, invert, alpha, and erase.
Example
The following example illustrates getting and setting the blendMode property:
//if the blend mode is 'add', change it to 'subtract'
var blend = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].blendMode;
fl.trace(blend);
if (blend == 'add'){
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].blendMode = 'subtract';
}
compiledClipInstance.brightness
Availability
Flash Professional CC.
51
Usage
compiledClipInstance.brightness
Description
Read-only property; an int that contains the value set in the Color Effect Property Inspector for brightness when
colorMode == 'brightness'. Specify a percentage between -100 and 100. Returns an error if colorMode is a different
setting.
Example
The following example illustrates use of this property:
var elem = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (elem.colorMode == 'brightness') {
fl.trace(elem.brightness);
}
compiledClipInstance.cacheAsBitmap
Availability
Flash Professional CC.
Usage
compiledClipInstance.cacheAsBitmap
Description
Property; a boolean that indicates whether to cache bitmaps. (Equivalent to Use runtime bitmap caching in the
Property Inspector). The default is
false.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Example
The following example illustrates use of this property:
Property; an int that reduces or increases the tint and alpha values by a constant amount. This value is added to the
current value. This setting is most useful if used in conjunction with
This setting is the same as selecting Color > Advanced in the Instance Property Inspector and adjusting the controls
on the right of the dialog.
colorAlphaPercent
. Valid values are -255 to 255.
52
Example
The following example illustrates use of this property:
//change the colorAlphaAmount of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorAlphaAmount = 100;
//change the colorAlphaAmount of the selected symbol instance
fl.getDocumentDOM().selection[0].colorAlphaAmount = -100;
compiledClipInstance.colorAlphaPercent
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorAlphaPercent
Description
Property; an int that reduces or increases the tint and alpha values by a specified percentage. The current values are
multiplied by this percentage. Valid values are -100 to 100.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector and adjusting the controls
on the left of the dialog
Example
The following example illustrates use of this property:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
//change the colorAlphaPercent of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorAlphaPercent = -100;
//change the colorAlphaPercent of the selected symbol instance
fl.getDocumentDOM().selection[0].colorAlphaPercent = 90;
compiledClipInstance.colorBlueAmount
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorBlueAmount
Description
Property; an int that either reduces or increases the blue tint by a constant amount. This value is added to the current
value. Valid values are -255 to 255.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
53
Example
The following example illustrates use of this property:
// Change the colorBlueAmount of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorBlueAmount = 100;
//change the colorBlueAmount of the selected symbol instance
fl.getDocumentDOM().selection[0].colorBlueAmount = 255;
compiledClipInstance.colorBluePercent
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorBluePercent
Description
Property; an int that reduces or increases the blue tint values by a specified percentage. The current values are
multiplied by this percentage. Valid values are -100 to 100.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
Example
The following example illustrates use of this property:
/ /change the colorBluePercent of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorBluePercent = 100;
//change the colorBluePercent of the selected symbol instance
fl.getDocumentDOM().selection[0].colorBluePercent = 80;
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
compiledClipInstance.colorGreenAmount
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorGreenAmount
Description
Property; an int that either reduces or increases the green tint by a constant amount. This value is added to the current
value. Valid values are -255 to 255.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
Example
The following example illustrates use of this property:
// change the colorGreenAmount of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorGreenAmount = 100;
//change the colorGreenAmount of the selected symbol instance
fl.getDocumentDOM().selection[0].colorGreenAmount = 255;
54
compiledClipInstance.colorGreenPercent
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorGreenPercent
Description
Property; an int that reduces or increases the green tint values by a specified percentage. The current values are
multiplied by this percentage. Valid values are -100 to 100.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
Example
The following example illustrates use of this property:
/change the colorGreenPercent of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorGreenPercent = 100;
//change the colorGreenPercent of the selected symbol instance
fl.getDocumentDOM().selection[0].colorGreenPercent = 80;
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
compiledClipInstance.colorMode
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorMode
Description
Property; a string that specifies the color mode, as identified in the Symbol Properties dialog. Valid values are “none”,
“brightness”, “tint”, “alpha”, and “advanced”.
Example
The following example illustrates use of this property:
//change the colorMode of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorMode = 'advanced';
55
compiledClipInstance.colorRedAmount
Availability
Flash Professional CC.
Usage
compiledClipInstance.colorRedAmount
Description
Property; an int that either reduces or increases the red tint by a constant amount. This value is added to the current
value. Valid values are -255 to 255.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
Example
The following example illustrates use of this property:
// change the colorRedAmount of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorRedAmount = 100;
//change the colorRedAmount of the selected symbol instance
fl.getDocumentDOM().selection[0].colorRedAmount = 255;
compiledClipInstance.colorRedPercent
Availability
Flash Professional CC.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Usage
compiledClipInstance.colorRedPercent
Description
Property; an int that reduces or increases the red tint values by a specified percentage. The current values are multiplied
by this percentage. Valid values are -100 to 100.
This setting is the same as selecting Color > Advanced in the Instance Property Inspector.
Example
The following example illustrates use of this property:
//change the colorRedPercent of the first element in the first frame, top layer
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].colorRedPercent = 100;
//change the colorRedPercent of the selected symbol instance
fl.getDocumentDOM().selection[0].colorRedPercent = 80;
compiledClipInstance.description
56
Availability
Flash MX 2004.
Usage
compiledClipInstance.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 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.filters
Availability
Flash Professional CC.
Usage
compiledClipInstance.filters
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Description
Property; an array of Filter objects. The properties of Filter object in the filters array can be read but cannot be written
directly by accessing the filters array. To set the properties of the filter objects in the filters array, first retrieve the array,
set the properties, set it back to the filters array.
Example
The following example illustrates use of this property:
//trace the name of the filter at index 0, if == glow filter, set its blurX to 100
var filterName =
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].filters[0].name;
fl.trace(filterName);
var filterArray = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].filters;
if (filterName == 'glowFilter'){
filterArray[0].blurX = 100;
}
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].filters = filterArray;
compiledClipInstance.forceSimple
57
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
same as the Make Child Objects Accessible option being unchecked. If
forceSimple is false, it is the same as the
forceSimple is true, it is 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.shortcut
Availability
Flash MX 2004.
Usage
compiledClipInstance.shortcut
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
Description
Property; a string that is equivalent to the Shortcut field in the Accessibility panel. The shortcut is read by the screen
reader. 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
58
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
unchecked. If
silent is false, then Make Object Accessible is checked.
silent is true, then Make Object Accessible is
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;
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:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
// Get the tabIndex of the object.
var theTabIndex = fl.getDocumentDOM().selection[0].tabIndex;
// Set the tabIndex of the object.
fl.getDocumentDOM().selection[0].tabIndex = 1;
compiledClipInstance.tintColor
Availability
Flash Professional CC.
Usage
compiledClipInstance.tintColor
Description
Read-only property; a Color object that, when the Color Effect Property Inspector is using style tint (colorMode ==
'tint'), returns the color applied to the tint. Otherwise, using this property results in an error.
Example
The following example illustrates use of this property:
59
var elem = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (elem.colorMode = 'tint') {
fl.trace(elem.tintColor);
fl.trace(elem.tintPercent);
}
compiledClipInstance.tintPercent
Availability
Flash Professional CC.
Usage
compiledClipInstance.tintPercent
Description
Read-only property; a string that, when the Color Effect Property Inspector is using style tint (colorMode == 'tint'),
returns the tint percentage from -100 to 100. Otherwise, using this property results in an error.
Example
The following example illustrates use of this property:
var elem = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (elem.colorMode = 'tint') {
fl.trace(elem.tintColor);
fl.trace(elem.tintPercent);
}
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
CompiledClipInstance object
compiledClipInstance.useBackgroundColor
Availability
Flash Professional CC.
Usage
compiledClipInstance.useBackgroundColor
Description
Property; a boolean that sets the background color:
• true - Use 32-bit with alpha.
• false - Use the background color.
Example
The following example illustrates use of this property:
A Boolean value of true if the Component panel list is refreshed, false otherwise.
Description
Method; refreshes the Components panel’s list of components.
Example
The following example refreshes the Components panel:
fl.componentsPanel.reload();
Last updated 12/6/2013
Chapter 10: Contour object
contour summary
Availability
Flash MX 2004.
Description
A Contour object represents a closed path of half edges on the boundary of a shape.
Method summary
You can use the following method with the Contour object:
MethodDescription
contour.getHalfEdge()Returns a HalfEdge object on the contour of the selection.
66
Property summary
You can use the following properties with the Contour object:
PropertyDescription
contour.fillA Fill object.
contour.interiorRead-only; the value is true if the contour encloses an area; false otherwise.
contour.orientationRead-only; an integer indicating the orientation of the contour.
contour.fill
Availability
Flash CS4 Professional.
Usage
contour.fill
Description
Property; a Fill object.
Example
Assuming that you have a contour with a fill selected, the following example displays the contour’s fill color in the
Output panel:
var insideContour = fl.getDocumentDOM().selection[0].contours[1];
var insideFill = insideContour.fill;
fl.trace(insideFill.color);
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Contour object
contour.getHalfEdge()
Availability
Flash MX 2004.
Usage
contour.getHalfEdge()
Parameters
None.
Returns
A HalfEdge object.
Description
Method; returns a HalfEdge object on the contour of the selection.
Example
This example traverses all the contours of the selected shape and shows the coordinates of the vertices in the Output
panel:
67
// with a shape selected
var elt = fl.getDocumentDOM().selection[0];
elt.beginEdit();
var contourArray = elt.contours;
var contourCount = 0;
for (i=0;i<contourArray.length;i++)
{
var contour = contourArray[i];
contourCount++;
var he = contour.getHalfEdge();
var iStart = he.id;
var id = 0;
while (id != iStart)
{
// Get the next vertex.
var vrt = he.getVertex();
var x = vrt.x;
var y = vrt.y;
fl.trace("vrt: " + x + ", " + y);
he = he.getNext();
id = he.id;
}
}
elt.endEdit();
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Contour object
contour.interior
Availability
Flash MX 2004.
Usage
contour.interior
Description
Read-only property; the value is true if the contour encloses an area; false otherwise.
Example
This example traverses all the contours of the selected shape and shows the value of the interior property for 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++) {
var contour = contourArray[i];
fl.trace("Next Contour, interior:" + contour.interior );
contourCount++;
}
elt.endEdit();
68
contour.orientation
Availability
Flash MX 2004.
Usage
contour.orientation
Description
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.
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:
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Contour object
var elt = fl.getDocumentDOM().selection[0];
elt.beginEdit();
var contourArray = elt.contours;
var contourCount = 0;
for (i=0;i<contourArray.length;i++) {
var contour = contourArray[i];
fl.trace("Next Contour, orientation:" + contour.orientation);
contourCount++;
}
elt.endEdit();
69
Last updated 12/6/2013
Chapter 11: Document object
document summary
Availability
Flash MX 2004.
Description
The Document object represents the Stage. That is, only FLA files are considered documents. To return the Document
object for the current document, use
Method summary
You can use the following methods with the Document object:
MethodDescription
document.addDataToDocument()Stores specified data with a document.
fl.getDocumentDOM().
70
document.addDataToSelection()Stores specified data with the selected objects.
document.addFilter()Applies a filter to the selected objects.
document.addItem()Adds an item from any open document or library to the
document.addNewLine()Adds a new path between two points.
document.addNewOval()Adds a new Oval object in the specified bounding rectangle.
document.addNewPrimitiveOval()Adds a new oval primitive fitting into the specified bounds.
document.addNewPrimitiveRectangle()Adds a new rectangle primitive fitting into the specified
document.addNewPublishProfile()Adds a new publish profile and makes it the current one.
document.addNewRectangle()Adds a new rectangle or rounded rectangle, fitting it into the
document.addNewScene()Adds a new scene (Timeline object) as the next scene after the
document.addNewText()Inserts a new empty text field.
document.align()Aligns the selection.
document.allowScreens() - droppedDropped in Flash Professional CC.
document.arrange()Arranges the selection on the Stage.
specified Document object.
bounds.
specified bounds.
currently selected scene and makes the new scene the
currently selected scene.
document.breakApart()Performs a break-apart operation on the current selection.
document.canEditSymbol()Indicates whether the Edit Symbols menu and functionality are
document.canRevert()Determines whether you can use the document.revert() or
enabled.
fl.revertDocument() method successfully.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Document object
MethodDescription
71
document.canTestMovie()Determines whether you can use the
document.canTestScene()Determines whether you can use the
document.changeFilterOrder()Changes the index of the filter in the Filters list.
document.clipCopy()Copies the current selection from the document to the
document.testMovie() method successfully.
document.testScene() method successfully.
Clipboard.
document.clipCut()Cuts the current selection from the document and writes it to
the Clipboard.
document.clipPaste()Pastes the contents of the Clipboard into the document.
document.close()Closes the specified document.
document.convertLinesToFills()Converts lines to fills on the selected objects.
document.convertSelectionToBitmap()Converts selected objects in the current frame to a bitmap and
inserts the bitmap into the library.
document.convertToSymbol()Converts the selected Stage items to a new symbol.
document.crop()Uses the top selected drawing object to crop all selected
drawing objects underneath it.
document.debugMovie()Initiates a debug session with the document.
document.deleteEnvelope()Deletes the envelope (bounding box that contains one or
more objects) from the selected object.
document.deletePublishProfile()Deletes the currently active profile, if there is more than one.
document.deleteScene()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.
document.deleteSelection()Deletes the current selection on the Stage.
document.disableAllFilters()Disables all filters on the selected objects.
document.disableFilter()Disables the specified filter in the Filters list.
document.disableOtherFilters()Disables all filters except the one at the specified position in
the Filters list.
document.distribute()Distributes the selection.
document.distributeToKeyframes()Performs a distribute-to-keyframes operation on the current
selection; equivalent to selecting Distriute to Keyframes.
document.distributeToLayers()Performs a distribute-to-layers operation on the current
selection; equivalent to selecting Distribute to Layers.
document.documentHasData()Checks the document for persistent data with the specified
name.
document.duplicatePublishProfile()Duplicates the currently active profile and gives the duplicate
version focus.
document.duplicateScene()Makes a copy of the currently selected scene, giving the new
scene a unique name and making it the current scene.
document.duplicateSelection()Duplicates the selection on the Stage.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Document object
MethodDescription
72
document.editScene()Makes the specified scene the currently selected scene for
editing.
document.enableAllFilters()Enables all the filters on the Filters list for the selected objects.
document.enableFilter()Enables the specified filter for the selected objects.
document.enterEditMode()Switches the authoring tool into the editing mode specified by
the parameter.
document.exitEditMode()Exits from symbol-editing mode and returns focus to the next
level up from the editing mode.
document.exportInstanceToLibrary()Export a selected movie clip, graphic, or button instance on the
Stage to a new bitmap in the Library.
document.exportInstanceToPNGSequence(
)
document.exportPNG()Exports the document as one or more PNG files.
document.exportPublishProfile()Exports the currently active profile to an XML file.
document.exportPublishProfileString() Returns a string that specifies, in XML format, the specified
Export a selected movie clip, graphic, or button instance on the
Stage to a series of PNG files on disk.
profile.
document.exportSWF()Exports the document in the Flash SWF format.
document.exportVideo()Exports a video from the document and optionally sends it to
Adobe Media Encoder to convert the video.
document.getAlignToDocument()Identical to retrieving the value of the To Stage button in the
Align panel.
document.getBlendMode()Returns a string that specifies the blending mode for the
selected objects.
document.getCustomFill()Retrieves the fill object of the selected shape, or the Tools
panel and Property inspector if specified.
document.getCustomStroke()Returns the stroke object of the selected shape, or the Tools
panel and Property inspector if specified.
document.getDataFromDocument()Retrieves the value of the specified data.
document.getElementProperty()Gets the specified Element property for the current selection.
document.getElementTextAttr()Gets a specified TextAttrs property of the selected Text
objects.
document.getFilters()Returns an array that contains the list of filters applied to the
currently selected objects.
document.getMetadata()Returns a string containing the XML metadata associated with
the document.
document.getMobileSettings()Returns the string passed to
document.getPlayerVersion()Returns a string that represents the targeted player version for
document.setMobileSettings().
the specified document.
document.getPublishDocumentData()Indicates whether publishing of the specified persistent data is
enabled for the specified format in the document.
document.getSelectionRect()Gets the bounding rectangle of the current selection.
Last updated 12/6/2013
EXTENDING FLASH PROFESSIONAL
Document object
MethodDescription
73
document.getSWFPathFromProfile()Gets the full path to the SWF file that is set in the current
Publish profile.
document.getTelemetryForSwf()
Indicates whether the “Enable detailed telemetry” checkbox is
selected in the Publish Settings dialog.
document.getTextString()Gets the currently selected text.
document.getTimeline()Retrieves the current Timeline object in the document.
document.getTransformationPoint()Gets the location of the transformation point of the current
selection.
document.group()Converts the current selection to a group.
document.importFile()Imports a file into the document.
document.importPublishProfile()Imports a profile from a file.
document.importPublishProfileString() Imports an XML string that represents a publish profile and sets
it as the current profile.
document.importSWF() - droppedDropped in Flash Profesional CC.
document.intersect()Creates an intersection drawing object from all selected
drawing objects.
document.loadCuepointXML() - droppedDropped in Flash Professional CC.
document.match()Makes the size of the selected objects the same.
document.mouseClick()Performs a mouse click from the Selection tool.
document.mouseDblClk()Performs a double mouse click from the Selection tool.
document.moveSelectedBezierPointsBy() If the selection contains at least one path with at least one
Bézier point selected, this method moves all selected Bézier
points on all selected paths by the specified amount.
document.moveSelectionBy()Moves selected objects by a specified distance.
document.optimizeCurves()Optimizes smoothing for the current selection, allowing
multiple passes, if specified, for optimal smoothing; equivalent
to selecting Modify > Shape > Optimize.
document.publish()Publishes the document according to the active publish