Global functions and variables


The framework must be initialised every time you want to run xJSFL code using the following command.


Once initialized (see xJSFL Environment for more details) the following global functions and properties will become available, along with any registered classes or custom global functions:

Global variables

All xJSFL global variables start with a $ to differentiate them from any local variables you create.

Note that all these variables are JavaScript 1.6 getters, which means internally, they are actually calling a function, so if you plan to do a lot of DOM manipulation, for example, assign the result of $dom to a variable called dom, that way the behind-the-scenes methods are only called once:

var dom = $dom;

Get the current document DOM:

$dom; // same as fl.getDocumentDOM()

Get the current document Timeline:

$timeline; // same as fl.getDocumentDOM().getTimeline()

Get the current document Library:

$library; // same as fl.getDocumentDOM().library

Get the current document selection:

$selection; // same as fl.getDocumentDOM().selection

Note that you can use $selection in a for...each loop without it being called multiple times, as it would be in a for loop:

for each(var element in $selection){ ... }

Global functions

For convenience, there are various functions that have been made global.


Trace output to the output panel:

trace('This is a trace', 'which handles', 'multiple arguments');

Clear the output panel:


Format some output to the Output panel:

format('The item "{name}" has {frameCount} frames', item);
The item "Symbol 1" has 25 frames

Inspection and debugging

Inspect any object to the output panel using Output.inspect():


List the properties of an Array using Output.list():


Debug function, file URI, or caught error, using xjsfl.debug:

try{ x += 1; }
catch(error){ debug(error); }

Library / class loading

Load a class, but only if it's not been loaded yet:


Force the load of a class, even if it's been loaded before:



Load a file or execute an external JSFL script:

var text = load('path/to/file.txt');

Save some data to a file:

save('path/to/file.txt', 'some data');

Both functions call methods on xjsfl.file. See the section on File handling  for more info about loading files within the framework.

Next Steps

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>