With the advent of Flash CS5, Adobe switched the format of .fla
files from the quirky binary format it was in previous editions to what every
self-respecting developer of document-creation tools uses nowadays: A
compressed archive consisting of an XML file (the actual document) and lots of
additional files.
This in itself would be pretty nice, what with enabling third-party tooling
and all. What I want to get at, though, is that they were nice enough to also
enable working with those same documents saved as an uncompressed folder:
Choosing Flash CS5 Uncompressed Document (*.XFL) as the file format
when saving a project causes a folder with the project’s name to be created.
Inside this folder is everything that would normally be contained in the
.fla:
- The file
DOMDocument.xml, which is the equivalent of the .fla file without any embedded assets or settings - The file
PublishSettings.xml, which contains exactly what you think it does - The file
MobileSettings.xml, which also contains exactly what you think it does - The file
META-INF/metadata.xml, containing the documents’s creation and change history - The folder
LIBRARY, which contains the documents library, neatly structured in the same way as your library itself, but with additional folders for binary assets, such as BMPs - The folder
bin, which contains cached versions of the binary assets, pre-converted to their output representations as compiled into the published SWF
The beauty of this setup is that you can work with all these different files just as you would with any other text or binary files: You can edit the XML files in your editor of choice, replace images with newer versions you get from your designer or use your diff and merge tools on them.
This last part is the most important to me: By replacing your .fla
files with XFL folders, you allow them to be version controlled in
a sane way. Instead of forcing your VCS to deal with incomprehensible blobs of
binary data, hoping that it will make the best of it, you allow it to live up
to all the hype about its efficiency and speed that caused you to use it in
the first place.
One last tip on that: Use whatever means your VCS provides to exclude the
*.dat files in the bin folder from versioning. They’re
really simple caches that get re-created if missing.