FLAkit is a collection of tools and libraries I’ve written that allows code written in FlashDevelop to run without changes in Flash Professional. Using the FLAkit frameworks, the included FLA file will compile the project without ever opening Flash Pro beforehand. It also includes some helper libraries to make certain tasks less painful.
Currently, FLAkit consists of the following:
FLAKit’s in-game console allows you to bind functions and call them on the fly. Toggle debug mode and tweak variables without restarting your game.
FLAkit’s animation class fills the void left by the lack of Flash Professional’s animation editor by binding sets of frames from a sprite sheet to a simple interface.
When working with FlashDevelop, assets are embedded in the SWF at compile-time, utilizing the Flex framework’s embed metatags. Flash Pro doesn’t support these, so images and sounds have to be imported as Symbols. FLAkit’s Library class lets you load images and sounds into your SWF at runtime, in a way that works seamlessly in both environments. File access is sandboxed for security, and interface is based on the familiar Actionscript 3 package import syntax.
Live asset reloading
FLAKit now allows you to make modifications to your art assets and reload the library without restarting your game. Animations and sprites will update automatically when the library finishes loading.
Library.as uses XML to specify the assets to load. LibraryBuilder generates the XML by searching the asset directory for supported files. Just add your images and sounds to the lib folder of your FlashDevelop folder, run LibraryBuilder and the assets will be available for use in your code.
Loading assets at runtime also greatly decreases compile time, especially for large projects. For deployment, LibraryBuilder can generate an Actionscript 3 class file that embeds assets with Flex metatags and allows you to swap out implementations with only minor changes.
LibraryBuilder is written in cross-platform C#, so it’ll work on your Windows PC as well as any Mac or Linux machine under Mono.
The Input class allows access to the state of any key in a single expression. No more declaring event listeners and variables for each key you want to check!