xJSFL 1.0


Well, it's been a long time coming (2 years, to be precise!) but the framework finally has its 1.0 release!

Note: as of June 28, there's also the 1.01 release :)

It's pretty much production ready; all the classes, features, changes and fixes that I've been wanting to put in over the last 9 months are pretty much there.

However, there have been some BIG changes since the Beta!


The major changes are:

  • A complete rewrite of URI creation and file handling
  • A major restructuring of the internal file structure, file searching, and loading mechanisms
  • Komodo > Flash integration has been updated (so you'll need to reinstall the latest xJSFL extension)
  • Overhauled bootstrap:
    • Moved xjsfl.output methods log() and trace() to bootstrap
    • Implemented actual file logging (so you can debug startup errors more easily)
    • Moved responsibility for loading user classes to user bootstrap
  • xjsfl.utils moved to a new Utils class

New features are:

  • Support for location-relative paths, i.e. load('some file.jsfl')
  • Support for user-written custom selectors such as :blurred
  • Support for deep-attribute notation in Selectors, such as [libraryItem.name=Symbol 5]
  • Assets in <module>/flash/* are now automatically copied to Flash/Configuration/ on startup
  • xjsfl.file.load() now detects errors in loaded jsfl files, and meaningfully warn the user (although disabled for v1.0, coming in v1.1)
  • Profile-specific folder can now be added to flash/<lang>/Configuration/xJSFL/...
  • XUL can now load and manage manually-written XUL definitions
  • Improved installation routine and new uninstalltion routine

New classes and code are:

Minor changes are:

  • The Data.recurse() methods have been moved to Utils, and now support skipping and finding
  • Folder now has cross-platform open() and copy() methods, and uris property
  • Template placeholders now support deep properties, i.e. "The value is {object.value}"
  • Logger class rewritten to support placeholder variables
  • Table now supports captions and single-object printing
  • Long URIs (>260 chars) now throw errors, rather than failing silently
  • Library Item instances now have shortName property
  • Timeline has selectedLayers getter that returns an Array of Layer instances
  • $selection can now be set

Removals are:

  • Removed $dir global variable
  • Removed Base class
  • Removed xjsfl.get (moved to UI)
  • Removed xjsfl.utils (moved to Utils)

As well as:

  • A whole bunch of minor fixes & improvements
  • Updated example files in modules/Code Examples/

There are a bunch of changes and minor bugs / nice-to-haves that are also on the slate for later versions.

xJSFL 1.0 Framework Schematic

The following (updated) schematic shows the various components, classes and scripts that come with the 1.0 release of the framework:


The documentation has been gone through with a fine-toothed comb, and the Guides and API section are now fully up to date, although the AS3 Module Framework is still lacking, as are the Tutorial sections.


See the installation notes at: www.xjsfl.com/support/setup/quick-start/installation

Beta users: the names of some installation files have changed, so before installation, you may want to manually delete any xJSFL files in Flash's user configuration folder:

  • Commands/xJSFL (this should get cleaned up automatically)
  • Tools (shouldn't be an issue, but doesn't hurt to remove xJSFL-related files)
  • WindowSWF (some panels have new names, just be sure to delete the old Sample or Snippets panels)


So... that's it for now! Enjoy :)


3 Responses to xJSFL 1.0

  1. Hugh Campbell says:

    Wow, so much added here. Great work Dave, looking forward to having a play.

  2. Dave Stewart says:

    The 1.01 update is now live! Get downloading Hugh :)


  3. xJSFL | xJSFL 1.0 « eaflash says:

    [...] on http://www.xjsfl.com Share this:TwitterFacebookLike this:LikeBe the first to like [...]

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>