Hack 65 Beat Flash File Bloat 
You may find that your FLA gets bigger every
time you save it, even if you delete unused assets such as bitmaps
and sounds. Beat the bloat with this hack.
When deploying
Flash content online, filesize is the
name of the game. The smaller the file you deploy, the faster it
downloads. When compiling a FLA into a SWF, Flash omits unused assets
in the Library [Hack #73] .
However, the source FLA file contains not only unused Library assets,
but even old assets that you have deleted from the Library! This is
the cause of Flash FLA file bloat. It doesn't affect
SWFs, but it is something to be aware of nonetheless.
In versions of Flash prior to Flash MX 2004, you will find that your
files get larger each time you save them using File Save,
even after you delete unused content from them. Although Flash MX
2004's File Save and Compact option reduces
the FLA file's size, this option
isn't available in prior versions of Flash.
Furthermore, saving the FLA in
Flash MX 2004 format prevents you from reopening the file in previous
versions (although Flash MX 2004 and Flash MX Professional 2004 share
the same file format).
Why the Big File?
You may wonder what causes the file bloat in the first place. In all
versions of Flash, saving a FLA using File Save adds only
incremental changes to the FLA
(known as an incremental
save or fast
save).
Flash doesn't optimize the saved file by removing
things you've deleted.
You can see this for yourself by creating a new Flash FLA file and
importing a large media file (such as a bitmap or sound file). Then,
save the file with File Save or Ctrl-S (Windows) or
-S (Mac) and note the file's size.
Then delete the large media asset from both the Stage and the Library
and resave the file with File Save. You will see that the
filesize remains constant even after deleting the large assets!
This is the root of the bloat problem; as you make changes to a FLA
file, the deletions are never removed from the saved file. This can
also be problematic if you delete some embarrassing or proprietary
content and then inadvertently pass it onto a client (granted, the
client would need to decompile the FLA [Hack #98] to get at it, but it is
always a good idea to cover your tracks). Although you ordinarily
would publish only SWF files, you should compact FLA files when, say,
posting them as examples on the Web or transmitting them to clients
or other developers.
The Fix
You can force
Flash to
compact a FLA file in two ways:
- Save the file using File
Save and Compact (Flash MX 2004 and Flash MX Professional 2004 only)
-
This option forces Flash to remove unnecessary information during the
save. Flash has to rewrite the entire file, so the operation may take
longer, depending on the amount of content to save. You
won't be able to reopen the file in previous
versions of Flash, so be careful to retain backups of the legacy
FLAs! It is a good idea to save a backup under another name in case
the compact operation fails for some reason.
- Save and rename the file using File
Save As (all versions of Flash)
-
This option does the same thing as File Save and Compact but
it assumes you will rename the file. Using another name is a good
idea in case the file save operation fails, but you can save it using
the original filename by clicking Yes when warned that a file of that
name already exists.
So, why doesn't Macromedia change it so that the
File Save option performs a save and compact? Well,
incremental saves can be considerably faster. Therefore, the optimal
workflow is:
Press Ctrl-S (or -S) to save the file every so often.
This saves the file instantaneously so you can carry on without any
pause. Make a backup of your file periodically to avoid losing any work or
allowing you to go back to a previous version if you need to for some
reason. Select File Save As or File Save and Compact on
occasion (such as at the end of the day or before archiving files) to
compact the file. Before permanently archiving a FLA file, save a backup copy. Then
delete unused assets from the Library (bearing in mind that assets
used via ActionScript should not be deleted). Then save and compact
the file using one of the preceding techniques in order to minimize
the FLA for archival purposes.
Final Thoughts
Although the bloat quirk is addressed in Flash MX 2004, you still
need to know what's going on to manage it
effectively within your workflow. Flash development often
incorporates many design and asset changes, so files can get bloated
very quickly. Minimizing the size of FLA files makes them load faster
in the authoring tool and saves space when archiving or transmitting
the FLA. Similar issues exist in many other commercial software
products, including Macromedia Director and Microsoft Word.
|