SWF (/ˈswɪf/ SWIF) is an abbreviation for small web format, an
Adobe Flash file format used for multimedia, vector graphics and
ActionScript. Originating with FutureWave Software, then
transferred to Macromedia, and then coming under the control of Adobe,
SWF files can contain animations or applets of varying degrees of
interactivity and function. They may also occur in programs, commonly
browser games, using ActionScript.
Programmers can generate
SWF files from within several Adobe products,
including Flash, Flash Builder (an IDE),
Adobe Animate (the
Adobe Flash as of Feb. 2016), and After Effects, as
well as through MXMLC, a command-line application compiler which forms
part of the freely-available Flex SDK. Although
Adobe Illustrator can
SWF format files through its "export" function, it cannot
open or edit them. Other than using Adobe products, one can build SWFs
with open-source Motion-Twin
ActionScript 2 Compiler (MTASC), the
Ming library and the free-software suite SWFTools. Various
other third-party programs can also produce files in this format, such
Multimedia Fusion 2,
Captivate and SWiSH Max.
The term "SWF" has originated as an abbreviation for ShockWave
Flash. This usage was changed[by whom?] to the backronym Small Web
Format to eliminate confusion with a different technology, Shockwave,
SWF derived. There is no official resolution to the
acronym "SWF" by Adobe.
4 Published specifications
6 Related file formats and extensions
7 See also
9 External links
The small company
FutureWave Software originally defined the file
format with one primary objective: to create small files for
displaying entertaining animations. The idea involved a format
which player software could run on any system and which would work
with slower network connections. FutureWave released FutureSplash
Animator in May 1996. In December 1996
Macromedia acquired FutureWave
FutureSplash Animator became
Macromedia Flash 1.0.
The original naming of
SWF came out of Macromedia's desire to
capitalize on the well-known
Macromedia Shockwave brand; Macromedia
Director produced Shockwave files for the end user, so the files
created by their newer Flash product tried to capitalize on the
already established brand. As Flash became more popular than Shockwave
itself, this branding decision became more of a liability, so the
format started to be referred to as simply SWF.
Macromedia in 2005.
On May 1, 2008, Adobe dropped its licensing restrictions on the SWF
format specifications, as part of the Open Screen Project. However,
Rob Savoye, a member of the Gnash development team, has pointed to
some parts of the Flash format which remain closed. On July 1,
2008, Adobe released code to Google and Yahoo, which allowed their
search engines to crawl and index
The main graphical primitive in
SWF is the path, which is a chain of
segments of primitive types, ranging from lines to splines or bezier
curves. Additional primitives like rectangles, ellipses, and even text
can be built from these. The graphical elements in
SWF are thus fairly
SVG and MPEG-4 BIFS.
SWF also uses display lists and allows
naming and reusing previously defined components.
The binary stream format
SWF uses is fairly similar to QuickTime
atoms, with a tag, length and payload—an organization that makes it
very easy for (older) players to skip contents they don't support.
Originally limited to presenting vector-based objects and images in a
simple sequential manner, the format in its later versions allows
audio (since Flash 3) and video (since Flash 6).
Adobe introduced a new, low-level 3D API in version 11 of the Flash
Player. Initially codenamed Molehill, the official name given to this
API was ultimately Stage3D. It was intended to be an equivalent of
OpenGL or Direct3D.:9 In
Stage3D shaders are expressed in a
low-level language called Adobe Graphics Assembly Language
Adobe makes available plugins, such as
Adobe Flash Player and Adobe
Integrated Runtime, to play
SWF files in web browsers on many desktop
operating systems, including Microsoft Windows, Mac OS X, and
the x86 architecture and
ARM architecture (
Google Chrome OS
Google Chrome OS only).
GNU has started developing a free software
SWF player called Gnash
GNU General Public License (GPL). Despite being a declared
GNU project, funding for Gnash was fairly limited.
Another player is the LGPL-licensed Swfdec.
Lightspark is a
continuation of Gnash supporting more recent
Adobe has incorporated
SWF playback and authoring in other product and
technologies of theirs, including in Adobe Shockwave, which renders
more complex documents.
SWF can also be embedded in
these are viewable with
Adobe Reader 9 or later.
InDesign CS6 can
also produce some limited forms of
SWF animations directly.
PlayStation Portable consoles can play limited
SWF files in
Sony's web browser, beginning with firmware version 2.71. Both the
Nintendo Wii and the
Sony PS3 consoles can run
through their Internet browsers.
Scaleform GFx is a commercial alternative
SWF player that features
full hardware acceleration using the
GPU and has high conformance up
to Flash 8 and AS2.
Scaleform GFx is licensed as a game middleware
solution and used by many PC and console 3D games for user interfaces,
HUDs, mini games, and video playback.
The newer 3D features of
SWF have been seen as an alternative to
WebGL, with a spurt of 3D engines like Papervision3D,
Away3D, Sandy 3D, and Alternativa 3D targeting 3D
SWF. Although some of these projects started around 2005, until
Flash Player 10 however they had no support of
GPU acceleration, and
even in that version of the Flash Player, shaders could be used for
same materials, but vertex information still had to be processed on
the CPU (using BSP trees etc.) After version 11 of the Flash
Player added the new
Stage3D low-level API, some but not all of these
projects migrated to the new API. One that did migrate was Away3D,
Based on an independent study conducted by Millward Brown and
published by Adobe, in 2010, over 99% of desktop web browsers in the
"mature markets" (defined as United States, Canada, United Kingdom,
France, Germany, Japan, Australia, and New Zealand) had a
installed, with around 90% having the latest version of the Flash
Adobe makes available a partial specification of SWF, most
recently updated in January 2013 to reflect changes in
SWF versions have been decoupled from Flash player versions
after Flash 10. Afterwards the version number of the
SWF version 19 corresponds to the new features added in Flash
Player 11.6. Flash Player 14 uses
SWF version 25.
In 2008, the specifications document was criticized by Rob Savoye, the
lead developer of the Gnash project, as missing "huge amounts" of
information needed to completely implement SWF, omitting
specifications for RTMP and Sorenson Spark. The RTMP
specification was released publicly in June 2009.
The Sorenson Spark codec is not Adobe's property.
Until May 1, 2008, implementing software that plays
SWF was disallowed
by the specification's license. On that date, as part of its Open
Screen Project, Adobe dropped all such restrictions on the
SWF and FLV
Implementing software which creates
SWF files has always been
permitted, on the condition that the resulting files render "error
free in the latest publicly available version of Adobe Flash
Related file formats and extensions
Other formats related to
SWF authoring in the Adobe tool chain remain
without a public specification. One example is FLA, which is the
editable version of
SWF used by Adobe's Flash, but not by other Adobe
tools that can also output SWF, albeit with fewer features.
.swf files are completed, compiled and published files that cannot be
edited with Adobe Flash. However, several non-Adobe '.swf decompilers'
exist (like that of Sothink) to convert
SWF back to the FLA
format, or to the more recent
Adobe Flex format. Attempting to
import .swf files using Flash allows it to retrieve some assets from
the .swf, but not all.
FXG is a unified xml file format being developed by Adobe for Flex,
Flash, Photoshop and other applications.
.fla files contain source material for the Flash application. Flash
authoring software can edit FLA files and compile them into .swf
files. The Flash source file format is currently a binary file format
based on the Microsoft Compound
File Format. In Flash Pro CS5, the fla
file format is a zip container of an XML-based project structure.
.xfl files are XML-based project files that are equivalent to the
binary .fla format. Flash authoring software uses XFL as an exchange
format in Flash CS4. It imports XFL files that are exported from
InDesign and AfterEffects. In Flash Pro CS5, the xfl file is a key
file which opens the "uncompressed FLA" file, which is a hierarchy of
folders containing XML and binary files.
.as files contain
ActionScript source code in simple source files. FLA
files can also contain Actionscript code directly, but separate
external .as files often emerge for structural reasons, or to expose
the code to versioning applications.
.mxml files are used in conjunction with
ActionScript files (and .css
files), and offer a markup-language-style syntax (like HTML) for
designing the GUI in Flex. Each
MXML file creates a new class that
extends the class of the root tag, and adds the nested tags as
children (if they are descendants of UIComponent) or members of the
.swd files are temporary debugging files used during Flash
development. Once finished developing a Flash project these files are
not needed and can be removed.
.asc files contain Server-Side ActionScript, which is used to develop
efficient and flexible client-server
Macromedia Flash Communication
Server MX applications.
.abc files contain actionscript bytecode used by the Actionscript
Virtual Machine AVM (Flash 8 and prior), and AVM2 (Flash 9 or later).
.amf files containing Action Message commands for transacting with a
.flv files are Flash video files, as created by Adobe Flash, ffmpeg,
Sorenson Squeeze, or On2 Flix. The audio and video data within FLV
files are encoded in the same way as they are within
.f4v files are similar to iTunes M4V files which are based on
can be played back by Flash Player 9 Update 3 and above. F4V file
format is second container format for Flash video and it differs from
FLV file format. It is based on the ISO base media file
.f4p files are an Adobe suffix for media encrypted with the Adobe
Access digital rights management scheme which is based on the same
protection scheme that their RTMP protocol uses.
.f4a files are an Adobe suffix for iTunes M4A files that contain only
.f4b files are an Adobe suffix for iTunes M4B audiobook files.
.f4m files are XML manifest files. Containing base64
headers for an Adobe version of bit rate control HTTP Live Streaming.
.f4f files are
MP4 atom-ized fragmented files. Containing
.swc files are used for distributing components; they contain a
compiled clip, the component's
ActionScript class file, and other
files that describe the component.
.jsfl files are used to add functionality in the Flash Authoring
.swt files are 'templatized' forms of .swf files, used by Macromedia
.flp files are XML files used to reference all the document files
contained in a Flash Project. Flash Projects allow the user to group
multiple, related files together to assist in Flash project
organization, compilation and build.
.spl files are
FutureSplash Animator documents.
.aso files are cache files used during Flash development, containing
ActionScript byte code. An ASO file is recreated when a
change in its corresponding class files is detected. Occasionally the
Flash IDE does not recognize that a recompile is necessary, and these
cache files must be deleted manually. They are located
in %USERPROFILE%Local SettingsApplication
DataMacromediaFlash8enConfigurationClassesaso on Win32 / Flash8.
.sol files are created by
Adobe Flash Player to hold Local Shared
Objects (data stored on the system running the Flash player).
ActionScript code protection
Adobe Flash Player, the runtime that executes and plays back Flash
Adobe Flash Lite, a lightweight version of Flash Player for devices
that lack the resources to run regular Flash movies.
Saffron Type System, the anti-aliased text-rendering engine used in
version 8 onwards.
Local Shared Object
Personal video recorders can record and play swf files
File Format Specification Version 10" (PDF). Retrieved
File Format Specification Version 19" (PDF). Retrieved
Adobe Flash Player Administration Guide for Flash Player 10.1"
(PDF). Adobe Systems. 2010-06-10. p. 1. Retrieved
^ Open Screen Project
^ a b Mark Schaeffer (2007).
Adobe Flash CS3 Professional How-Tos: 100
Essential Techniques. Adobe Press. ISBN 978-0-13-270129-7.
SWF Definition from PC Magazine Encyclopedia". Retrieved
^ Jennifer Niederst (2001). Web Design in a Nutshell: A Desktop Quick
Reference (2nd ed.). O'Reilly Media, Inc. p. 438.
Retrieved 2016-09-15. Missing or empty title= (help)
^ "The History of Flash: The Dawn of Web Animation". Adobe Systems.
Archived from the original on 2008-01-25. Retrieved 2008-01-21.
^ url = http://www.adobe.com/ca/about-adobe/fast-facts.html
^ a b "Free Flash community reacts to Adobe Open Screen Project".
Archived from the original on 2008-09-28. Retrieved 2008-11-29.
^ Streamingmedia.com: Google and Yahoo Roll out Flash Search
^ a b c C. Concolato and J. C. Dufourd. "Comparison of
MPEG-4 BIFS and
some other multimedia description languages". Workshop and Exhibition
on MPEG-4, WEPM. 2002.
^ a b Christer Kaitila (2011).
Adobe Flash 11
Stage3D (Molehill) Game
Programming Beginner's Guide. Packt Publishing Ltd.
^ a b Willis, Nathan. "Gnash, Lightspark, and Shumway". LWN.net.
Retrieved 13 June 2014.
^ Christopher Smith; AGI Creative Team (2012). Adobe
Digital Classroom. John Wiley & Sons. p. 391.
Wii Internet Channel". Archived from the original on
^ Eric Lempel. "PS3 Firmware (v2.53) Update". Playstation.Blog.
^ a b c Cheridan Kerr; Jonathan Keats (2009). The Essential Guide to
Flash CS4. Apress. p. 286. ISBN 978-1-4302-2353-5.
^ Michael Lively (2010). Professional Papervision3D. John Wiley &
Sons. ISBN 978-0-470-97060-7.
^ Paul Tondeur; Jeff Winder (2009). Papervision3d Essentials: Create
Papervision3D Applications with Stunning Effects and
Powerful Animals. Packt Publishing Ltd.
^ Matthew Casperson (2011).
Away3D 3.6 Essentials. Packt Publishing
Ltd. ISBN 978-1-84951-207-7.
^ Michael Ivanov (2011).
Away3D 3.6 Cookbook. Packt Publishing Ltd.
^ Doug McCune; Deepa Subramaniam (2009).
Adobe Flex 3.0 For Dummies.
John Wiley & Sons. pp. 388–389.
^ a b Remi Arnaud (2011). "3D in a Web Browser". In Eric Lengyel. Game
Engine Gems 2. CRC Press. pp. 207–212.
^ "Flash content reaches 99% of Internet viewers". Adobe. Archived
from the original on August 27, 2010. Retrieved 2010-09-10.
SWF Technology Center Adobe Developer Connection
Real-Time Messaging Protocol
Real-Time Messaging Protocol (RTMP) specification Adobe Developer
File Format Specification License Agreement". Adobe
Systems. 2007-06-27. Archived from the original on 2007-12-22.
Retrieved 2008-01-05. You may not use the Specification in any way to
create or develop a runtime, client, player, executable or other
program that reads or renders
Open Screen Project
Open Screen Project Press Release". Adobe Systems. 2008-05-01.
Archived from the original on 2008-05-06. Retrieved 2008-05-01.
^ "Adobe Player Licensing: Flash Player Developer SDKs". Adobe
Systems. Archived from the original on January 15, 2008. Retrieved
^ Richard Harrington; Marcus Geduld (2009). After Effects for Flash,
Flash for After Effects: Dynamic
Animation and Video with Adobe After
Effects CS4 with
Adobe Flash CS4 Professional. Adobe Press.
p. 32. ISBN 978-0-321-60607-5.
^ Brimelow, Lee (25 April 2008). "New Video Tutorial on Ethical SWF
Decompiling". the Flash Blog. Adobe Systems. Retrieved 28 October
2010. [permanent dead link]
^ Shashank Tiwari; Elad Elrom; Charlie Schulze (2010). AdvancED Flex
4. Apress. p. 386. ISBN 978-1-4302-2484-6.
^ Can a Flash Player movie (SWF) file be edited or imported?.
Kb2.adobe.com. Retrieved on 2010-11-09.
Adobe Systems Incorporated (November 2008). "Video
Specification, Version 10" (PDF).
Adobe Systems Incorporated. Archived
from the original (PDF) on 2010-09-23. Retrieved 2009-08-03.
^ a b c d "New
File Extensions and MIME Types". Kaourantin.net.
2007-10-31. Archived from the original on 2010-07-06. Retrieved
Adobe Systems Flash
File Format Specification (Version 19)
SWF Investigator — a disassembler of sorts
Stage3D (or Stage 3D)
Graphics file formats
ICO / CUR
PBM / PGM / PPM / PNM
PSD / PSB
Exchangeable image file format (Exif)
Metadata Platform (XMP)
Action Message Format (AMF)
Flash Video (FLV)
Flash XML Graphics (FXG)
Local shared objects (LSOs)
Flash Movie (SWF)
Flash Code Library (SWC)
Adobe Flash Player
List of Flex frameworks
Adobe Flash Media Live Encoder
Adobe Flash Media Server
Adobe Flash Builder
Adobe Flash Catalyst
Adobe Flash Lite
Comparison of HTML5 and Flash
Thoughts on Flash
Real-Time Messaging Protocol
Real-Time Media Flow Protocol
Vector graphics markup languages and file formats
Graphics Layout Engine
Remote Imaging Protocol
Linden Scripting Language