Introduction
An .fla file is the editable document of a Flash animation, game or
application. It holds the stage, the timelines with their layers and frames, the vector
shapes, the library of symbols, the imported bitmaps and sounds, and the ActionScript
written on frames and buttons. It is the source, not the program: publishing it makes a
.swf file, which Flash Player, Adobe AIR or an
emulator such as Ruffle runs. Only the authoring tool opens the .fla
itself.
The format belongs to the authoring tool that began as FutureSplash Animator in 1996. Macromedia bought it at the end of that year and called it Macromedia Flash. Adobe bought Macromedia in 2005, sold the tool as Adobe Flash Professional, and renamed it Adobe Animate in February 2016. Animate 2024 is the latest release. Since February 2026 Adobe keeps it in maintenance mode, with security and bug fixes but no new features.
Over those thirty years the .fla has been three formats. Versions that
only add to a format share it; a version that changes what is already there is a
separate format. Flash MX 2004 changed every string in the document from single bytes to
UTF-16, and Flash CS5 replaced the binary compound file with a ZIP archive of XML. The
releases in between raised the revision numbers of single records and added fields at
their ends, which a reader handles by testing each record’s revision, so they stay in
one format.
An .fla file dropped on any page opens in the explorer. It lists the
streams of a binary FLA or the members of an XFL archive, shows the bitmaps, and pulls
out every ActionScript script in the document, each labelled with its timeline, layer
and frame, or with the button or movie clip it belongs to.
Variations
| Format | Variation | About | Open |
|---|---|---|---|
.FLA | Flash MX and earlier document (binary FLA, single-byte text) | Microsoft compound file of Flash’s own MFC object streams, every string in single bytes. | Open |
.FLA | Flash MX 2004 to CS4 document (binary FLA, UTF-16 text) | The same compound file with UTF-16LE strings and stream names, from Flash MX 2004. | Open |
.FLA | XFL document (Flash CS5 and later, ZIP) | A ZIP archive of XML (DOMDocument.xml, LIBRARY/) and binary assets (bin/), from Flash CS5. | Open |
Flash MX and earlier document (binary FLA, single-byte text)
The documents of FutureSplash Animator and Macromedia Flash 1 to Flash MX, from 1996
to 2002. The file is a Microsoft compound file, a small file system of sectors inside
one file. It holds a Contents stream for the document as a whole and one
stream for each scene, each symbol and each imported bitmap or sound. Each stream is a
tree of Flash’s own objects, written with the MFC library of the Windows program.
Every string is in single bytes, in the Windows code page of whoever saved it.
The file starts with the compound file signature D0 CF 11 E0 A1 B1 1A
E1. The root entry’s class ID is
{597CAA70-72AA-11CF-831E-524153480000}, or else the root holds a
Contents stream and Page or Symbol streams.
The first byte of Contents is 0x29 or lower.
Flash MX 2004 to CS4 document (binary FLA, UTF-16 text)
The documents of Flash MX 2004, Flash 8, Flash CS3 and Flash CS4, from 2003 to 2008,
and of the “Save as CS4” option in later releases. The container and the streams are
the same, but every string is UTF-16LE. Script text, layer names and labels carry an
FF FE FF marker that says so, but the stream names listed in
Contents carry none, so a reader made for the older format misreads them.
Flash CS4 also names its streams with a time stamp, such as P 1
1227523356.
The file starts with D0 CF 11 E0 A1 B1 1A E1 and has Flash’s class ID
or its streams, as above. The first byte of Contents is
0x38 or higher.
XFL document (Flash CS5 and later, ZIP)
The documents of Flash Professional CS5, from 2010, and of every release since, up to
Adobe Animate. The .fla is a ZIP archive. DOMDocument.xml
describes the document and its scenes, LIBRARY/ holds one XML file for
each symbol and the files that were imported, bin/ holds bitmaps in
Flash’s own form, and PublishSettings.xml the publish settings. The same
files can also be kept unzipped in a folder, opened through an .xfl
file.
The file starts with 50 4B 03 04, a ZIP local file header, and holds a
member named DOMDocument.xml whose root element is
<DOMDocument>. Most also hold a mimetype member,
application/vnd.adobe.xfl, but it is not always first, so it does
not decide.
Telling them apart
The explorer checks the container first, then what only a Flash document has:
- A file that starts
D0 CF 11 E0 A1 B1 1A E1is a compound file. It is a binary FLA if its root entry has Flash’s class ID, or if the root holds aContentsstream and at least one timeline stream (Page 1,Symbol 1, or Flash CS4’sP 1 …andS 1 …). Word, Excel and Windows Installer files are compound files too, and have neither. - In a binary FLA, the first byte of the
Contentsstream is the document revision, which names the release that saved it (table below). Up to0x29the text is single-byte; from0x38it is UTF-16. For a value not in the table, the encoding of the stream names inContentsdecides. - A file that starts
50 4B 03 04is an XFL document if its central directory listsDOMDocument.xmland that file’s root element is<DOMDocument>. An ordinary ZIP, a.docxor a.jarhas no such member.
| First byte of Contents | Saved by | Format |
|---|---|---|
0x10 | FutureSplash Animator, Flash 1 | single-byte text |
0x11 | Flash 2 | single-byte text |
0x14 | Flash 3 | single-byte text |
0x1B | Flash 4 | single-byte text |
0x20 | Flash 5 | single-byte text |
0x29 | Flash MX | single-byte text |
0x38 | Flash MX 2004 | UTF-16 text |
0x3F | Flash 8 | UTF-16 text |
0x43 | Flash CS3 | UTF-16 text |
0x47 | Flash CS4 | UTF-16 text |
The values for FutureSplash Animator, Flash 1 and Flash 2 come from the JPEXS FLA converter; no file from those releases has been examined for this site.
Versions
Every release of the authoring tool, with the format it saves. The Contents byte is the
first byte of a binary FLA’s Contents stream. The last column gives the
older formats that Save As offers, where that is known.
| Release | Released | Version | Contents byte | Saves | Save as older |
|---|---|---|---|---|---|
| FutureSplash Animator | May 1996 | – | 0x10 | Binary, single-byte | – |
| Macromedia Flash 1 | December 1996 | 1 | 0x10 | Binary, single-byte | – |
| Macromedia Flash 2 | 1997 | 2 | 0x11 | Binary, single-byte | not known |
| Macromedia Flash 3 | 1998 | 3 | 0x14 | Binary, single-byte | not known |
| Macromedia Flash 4 | 1999 | 4 | 0x1B | Binary, single-byte | not known |
| Macromedia Flash 5 | 2000 | 5 | 0x20 | Binary, single-byte | not known |
| Macromedia Flash MX | March 2002 | 6 | 0x29 | Binary, single-byte | not known |
| Macromedia Flash MX 2004 | September 2003 | 7 | 0x38 | Binary, UTF-16 | Flash MX |
| Macromedia Flash 8 | September 2005 | 8 | 0x3F | Binary, UTF-16 | not known |
| Adobe Flash CS3 Professional | 2007 | 9 | 0x43 | Binary, UTF-16 | Flash 8 |
| Adobe Flash CS4 Professional | September 2008 | 10 | 0x47 | Binary, UTF-16 | Flash CS3 |
| Adobe Flash CS5 Professional | April 2010 | 11 | – | XFL 2.0 | Flash CS4 (binary) |
| Adobe Flash CS5.5 Professional | 2011 | 11.5 | – | XFL 2.1 | Flash CS5; users report CS4 too |
| Adobe Flash CS6 Professional | 2012 | 12 | – | XFL 2.2 | not known |
| Adobe Flash Professional CC | June 2013 | 13 | – | XFL 2.4 | none |
| Adobe Flash Professional CC 2014 | June 2014 | 14 | – | XFL | none |
| Adobe Flash Professional CC 2015 | June 2015 | 15 | – | XFL | none |
| Adobe Animate CC (renamed) | February 2016 | 15.1 | – | XFL | none |
| Adobe Animate CC 2017 | November 2016 | 16 | – | XFL | none |
| Adobe Animate CC 2018 | October 2017 | 18 | – | XFL | none |
| Adobe Animate CC 2019 | October 2018 | 19 | – | XFL | none |
| Adobe Animate 2020 | November 2019 | 20 | – | XFL | none |
| Adobe Animate 2021 | October 2020 | 21 | – | XFL | none |
| Adobe Animate 2022 | October 2021 | 22 | – | XFL | none |
| Adobe Animate 2023 | October 2022 | 23 | – | XFL | none |
| Adobe Animate 2024 | October 2023 | 24 | – | XFL | none |
| Adobe Animate 2024, latest update | September 2026 | 24.0.15 | – | XFL | none |
- The XFL numbers are the
xflVersionattribute ofDOMDocument.xml. Later releases write later values, which are not listed because they have not been confirmed. - Flash CS5 opens binary FLAs from every earlier release, and so does every release
since. Its own
.flais the ZIP form of XFL. - In the binary era Save As went back at most two releases, and from Flash CS5.5 one. Flash Professional CC dropped the older formats from Save As altogether.
- There was no Animate 2025 or 2026. On 2 February 2026 Adobe announced that Animate would stop being sold on 1 March 2026, then reversed the decision two days later: Animate stays available in maintenance mode.
- The release days of Flash 2 to 5, CS3, CS5.5 and CS6 are not certain, so only the years are given.
ActionScript in FLA
Is it text? Mostly yes, and it is never compiled. A script typed into
the Actions panel is kept as the source text exactly as typed, with its comments, tabs
and line breaks. Compiling to bytecode happens only when the document is published as a
SWF, so an .fla holds no bytecode, except inside compiled clips, which are
SWF files themselves. Two kinds of script are not text: the actions of Flash 4 and
earlier, and scripts built in normal mode in Flash 5 and Flash MX.
| Saved by | How scripts are stored | Encoding |
|---|---|---|
| FutureSplash Animator, Flash 1 to 4 | Not text. Actions are commands chosen from menus, kept as records: a kind of action, then its URL, target, frame number and other fields. | – |
| Flash 5 and Flash MX, expert mode | ActionScript 1.0 source text, in an ActionScript block on the keyframe, button or movie clip. | Single bytes in the author’s Windows code page |
| Flash 5 and Flash MX, normal mode | A list of statements with their fields, from which Flash rebuilds the text. Later revisions also keep the displayed text of each statement. | Single bytes |
| Flash MX 2004 to CS4 | Source text in the same ActionScript block: ActionScript 1.0 and 2.0, and 3.0 from CS3. | UTF-16LE |
| Flash CS5 and later (XFL) | Source text in a <script> element, inside <![CDATA[ … ]]>, in DOMDocument.xml for scenes and in the symbol’s XML file in LIBRARY/. | UTF-8 |
Scripts sit on keyframes, and in ActionScript 1.0 and 2.0 also on button and movie clip
instances, as on (release) { … } and onClipEvent (enterFrame) { …
} handlers. Classes are not kept in the document. An ActionScript 2.0 or 3.0
class lives in its own .as file on the classpath, and the document only
names it: as the linkage class of a library symbol, or as the document class in the
publish settings. ActionScript 1.0 and 2.0 scripts can also pull in a file with
#include "Script.as" when the document is published.
A binary FLA often holds more scripts than it shows. Flash’s ordinary save writes the streams that changed into new sectors and marks the old ones free without clearing them, so earlier versions of scripts survive in free sectors until the file is saved with Save and Compact. The explorer lists them separately, as older copies that are not part of the document.
- ActionScript in a Flash MX and earlier document – the ActionScript block, normal-mode statement lists and Flash 4 commands
- ActionScript in a Flash MX 2004 to CS4 document – the ActionScript block with UTF-16 text, and documents that mix encodings
- ActionScript in an XFL document – script elements, linkage classes and the document class
- ActionScript – the language and its
.assource files - ActionScript 1.0 – the language of Flash 5 and Flash MX
- ActionScript 2.0 – classes in
.asfiles, from Flash MX 2004 to Flash CS4 - ActionScript 3.0 – packages and classes for the AVM2, from Flash CS3
- ActionScript in SWF – the compiled form: AVM1 actions and AVM2 ABC bytecode
Links
Software
- Adobe Animate – Adobe’s animation tool, formerly Flash Professional, which opens every kind of FLA and saves XFL (Windows, macOS)
- JPEXS Free Flash Decompiler – free SWF decompiler that can export a SWF as an FLA document, binary or XFL (Windows, macOS, Linux)
Developers
- jpexs-fla-convert – library that reads and writes binary FLA and XFL documents (Java)
- xfl-schema – an unofficial XML schema for XFL documents, from the JPEXS project (XSD)
- fla-decoder – reader for binary FLA documents (Python); Kreijstal’s fork adds notes on the format
- fla-viewer – viewer for XFL documents, and partly for binary ones (TypeScript)
- xfl2svg – converts the shapes of XFL documents to SVG (Python)
Reference
- [MS-CFB] Compound File Binary File Format – Microsoft’s specification of the container of binary FLAs
- APPNOTE.TXT – PKWARE’s specification of the ZIP format, the container of XFL documents
- fla-decoder FORMAT.md – notes on the binary FLA’s streams and records
- Cracking the Pre-CS5 Binary FLA – Ed Moore’s account of decoding binary FLA documents (2026)