AirAppDuplicator: Run two versions of an Adobe AIR Application simultaneously

Since the initial release of the Adobe AIR runtime, one sought after feature has been the ability to run multiple instances of an application at the same time. The AIR runtime inherently prevents this by limiting each application to a single running instance.

This is done by reading the ‘id’ field defined in each application’s XML descriptor file. Any time a user attempts to run an AIR application, the runtime determines if an application with the same ID is already running. If an active instance is found, it is given focus, rather than launching a second instance.

There are some AIR applications where it may be beneficial to run multiple instances side-by-side. I have developed a small utility application that permits you to make copies of existing AIR applications and run the duplicated versions in tandem with the original. This is accomplished by copying the original application’s contents to a new location and specifying a new application ID for the copy.

It is important to note that each copy of the application will have its own independent storage directories. Depending on the architecture of the app, this may impact performance or data integrity. At the very least, do not expect stored information from one installation to carry over to another.

This is a hack, but I have found it useful in several situations. Your mileage may vary.

The application and source gode may be found on github:
Please check it out and tell me what you think (either here or on github directly).

AirAppDuplicator Demo from chris deely on Vimeo.


Flash IDE code hints for TweenLite – built with CSDoc!

In my last post I released my new AIR app CSDoc for generating Flash IDE code hints from ASDoc comments.  The app is very useful for people that create AS3 libraries, but it can also be employed by the end user.  Any library that is released with source code can be processed by ASDoc, and subsequently converted into code hints using CSDoc.

As an example, I have run CSDoc against the popular TweenLite/TweenMax animation package developed by Jack Doyle at   You can download the resulting Flash extension here (MXP).

To generate this package, I followed these steps:

  1. Downloaded the library source
  2. Ran asdoc on the package with the “-keep-xml” flag (I highly recommend Grant Skinner’s ASDocr for this task) ***Use Flex SDK 3.4 or LOWER***
  3. Ran CSDoc on the resulting toplevel_classes.xml file
  4. Packaged the resulting files into an MXP using the Adobe Extension Manager

That’s it!  This should work on any open source AS3 library, provided you have the appropriate supporting libs available.

Please let me know if you find this extension useful or if you’d like to see packages made for any other popular libraries.


No Comments

CSDoc – Create Flash CS3 & CS4 code hints using ASDoc

For the past few years I have been managing a sizable Flash API that is distributed to clients via an Adobe extension (MXP). Managing the compilation of the MXP file is a headache on its own (and worthy of a separate post). In addition, there is little to no documentation on building an extension that integrates nicely with the Flash IDE.

Sure, you can get your class files to install into the IDE’s class path, but what about adding code hinting and highlighting? I have not found many reliable resources on this topic, and everything I’ve learned has been by digging into the guts of the installed IDE files.

So, long story short, I’ve developed an AIR app that will use ASDoc to analyze your AS3 API and generate the files needed to add code hints within the Flash IDE.

The application, CSDoc, can be installed from the badge below. It is extremely simple (read: ugly) but gets the job done. Just follow the steps below to get the required XML docs for addition to your MXP:

Note: You do not have to actually use ASDoc comments in your code, but it is recommended.

  1. Run ASDoc on your project with the added argument: -keep-xml
  2. Use the “Browse” button to locate the toplevel_classes.xml file created by ASDoc
  3. Review the XML generated (if you really care…)
  4. Export the XML files to disk (I recommend keeping them in a directory with your project) and include them in your MXP

Please let me know in the comments if you find this useful or have any problems.

For anyone interested, this all started with a post by Rob Dixon, which is pretty outdated now:  Use ASDoc to drive new processes


Great Article on UDP in AIR 2.0

Ian McLean has written a multi-part article on using the UDP protocol in AIR 2.0. Interesting read, be sure to check it out:

No Comments

“Fixing” the FileSystemTree

Fatal error: Call to private method CodeColorer::performHighlightCodeBlock() from context '' in /nfs/c02/h06/mnt/24895/domains/ on line 70