![]() | |
Filename extension | .swf |
---|---|
Internet media type | |
Magic number | CWS ,FWS [4] orZWS [5] |
Developed by | FutureWave Software, later taken over byMacromedia and Adobe Systems |
Type of format | Vector graphic animation |
Container for | Adobe Flash (formerly Macromedia Flash and FutureSplash), sometimes labeledShockwave Flash Object. |
SWF (/ˈswɪf/)[6] is a defunctAdobe Flashfile format that was used formultimedia,vector graphics andActionScript.[7]
Originating withFutureWave Software, then transferred toMacromedia, and then coming under the control ofAdobe, SWF files can containanimations orapplets of varying degrees of interactivity and function. They may also occur in programs, commonlybrowser games, usingActionScript.
Programmers can generate SWF files from within several Adobe products, includingFlash,Flash Builder (anIDE),Adobe Animate (a rename of Adobe Flash since 2016), andAfter Effects, as well as through MXMLC, a command-line application compiler which forms part of the freely-availableFlex SDK. Although AdobeIllustrator can generate SWF format files through its "export" function, it cannot open or edit them. Other than using Adobe products, one can build SWFs withopen-sourceMotion-Twin ActionScript 2 Compiler (MTASC), the open-sourceMing library and thefree-software suiteSWFTools. Various other third-party programs can also produce files in this format, such asMultimedia Fusion 2,Captivate andSWiSH Max.
The term "SWF" originated as an abbreviation forShockWave Flash.[8] This usage was changed to thebackronymSmall Web Format to eliminate confusion with a different technology,Shockwave, from which SWF derived.[9][10] There is no official resolution to the initialism "SWF" by Adobe.[11]
Adobe declared its Flash player EOL on December 31, 2020. On January 12, 2021, it pushed an update to its Flash player that blocked all Flash content from running.[12]
The small companyFutureWave Software originally defined the file format with one primary objective: to create small files for displaying entertaining animations.[13]The idea involved a format which player software could run on any system and which would work with slower network connections. FutureWave releasedFutureSplash Animator in May 1996. In December 1996 Macromedia acquired FutureWave and FutureSplash Animator became Macromedia Flash 1.0.
The original naming of SWF came out of Macromedia's desire to capitalize on the well-knownMacromedia 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.[8]
Adobe acquired Macromedia in 2005.[14]
On May 1, 2008, Adobe dropped its licensing restrictions on the SWF format specifications, as part of theOpen Screen Project. However,Rob Savoye, a member of theGnash development team, has pointed to some parts of the Flash format which remain closed.[15] On July 1, 2008, Adobe released code to Google and Yahoo, which allowed their search engines to crawl and index SWF files.[16]
The main graphical primitive in SWF is the path, which is a chain of segments of primitive types, ranging from lines tosplines orBézier curves. Additional primitives like rectangles, ellipses, and even text can be built from these. The graphical elements in SWF are thus fairly similar toSVG andMPEG-4 BIFS. SWF also usesdisplay lists and allows naming and reusing previously defined components.[17]
The binary stream format SWF uses is fairly similar toQuickTime atoms, with a tag, length and payload – an organization that makes it very easy for (older) players to skip contents they don't support.[17]
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 ultimatelyStage3D. It was intended to be an equivalent ofOpenGL orDirect3D.[18]: 9 In Stage3Dshaders are expressed in a low-level language calledAdobe Graphics Assembly Language (AGAL).[18]: 57 [19]
Adobe makes availableplugins, such asAdobe Flash Player andAdobe Integrated Runtime, to play SWF files inweb browsers on many desktop operating systems, includingMicrosoft Windows,Mac OS X, andLinux on thex86 architecture andARM architecture (ChromeOS only).
GNU has started developing afree software SWF player calledGnash under theGNU General Public License (GPL). Despite being a declared high-priority GNU project, funding for Gnash was fairly limited.[20] Another player is theLGPL-licensedSwfdec.Lightspark is a continuation of Gnash supporting more recent SWF versions.[20]
Adobe has incorporated SWF playback and authoring in other product and technologies of theirs, including inAdobe Shockwave, which renders more complex documents.[17] SWF can also be embedded inPDF files; these are viewable withAdobe Reader 9 or later.[21]InDesign CS6 can also produce some limited forms of SWF animations directly.[22]
SonyPlayStation Portable consoles can play limited SWF files in Sony's web browser, beginning with firmware version 2.71. Both theNintendoWii[23] and theSonyPS3[24] consoles can run SWF files through their web browsers.
Scaleform GFx is a commercial alternative SWF player that features fullhardware acceleration using theGPU and has high conformance up to Flash 8 and AS2. Scaleform GFx is licensed as agame middleware solution and used by many PC and console 3D games for user interfaces,HUDs,mini games, and video playback.[citation needed]
The newer 3D features of SWF have been seen as an alternative toWebGL, with a spurt of 3D engines likePapervision3D,[25][26][27]Away3D,[25][28][29] Sandy 3D,[25][30] and Alternativa 3D targeting 3D SWF.[31] Although some of these projects started around 2005, until Flash Player 10 however they had no support ofGPU 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 (usingBSP trees etc.)[31] 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, version 4.[32]
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 SWF plugin installed, with around 90% having the latest version of the Flash Player.[33]
Due to the increasing popularity of HTML5 for games and animations, as well as the numerous security holes that had plagued Adobe's SWF player, Adobe declared its Flash playerEOL on December 31, 2020. On January 12, 2021, it pushed an update to its Flash player that blocked all Flash content from running.
Adobe makes available a partial specification of SWF,[34] most recently updated in January 2013 to reflect changes in SWF version 19.[35] SWF versions have been decoupled from Flash player versions after Flash 10. Afterwards the version number of the SWF progressed rapidly; SWF version 19 corresponds to the new features added in Flash Player 11.6.[36] Flash Player 14 uses SWF version 25.[37]
In 2008, the specifications document was criticized byRob Savoye, the lead developer of theGnash project, as missing "huge amounts" of information needed to completely implement SWF, omitting specifications forRTMP andSorenson Spark.[15] TheRTMP specification[38] was released publicly in June 2009.[citation needed] 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.[39] On that date, as part of its Open Screen Project, Adobe dropped all such restrictions on the SWF andFLV formats.[40]
Implementing software which creates SWF files has always been permitted, on the condition that the resulting filesrender "error free in the latest publicly available version of Adobe Flash Player."[41]
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.[42]
Extension | Explanation |
---|---|
.abc | Actionscript bytecode used by the Actionscript Virtual Machine AVM (Flash 8 and prior), and AVM2 (Flash 9 or later). |
.amf | Action Message commands for transacting with aFMS. |
.as | ActionScriptsource 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. |
.asc | Server-Side ActionScript, which is used to develop efficient and flexible client-server Macromedia Flash Communication Server MX applications. |
.aso | Cache files used during Flash development, containing compiled 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 Settings\Application Data\Macromedia\Flash8\en\Configuration\Classes\aso on Win32 / Flash8. |
.f4a | Adobe suffix for iTunes M4A files that contain only audio streams.[43] |
.f4b | Adobe suffix for iTunes M4Baudiobook files.[43] |
.f4f | MP4 atom-ized fragmented files. ContainingFLV packets. |
.f4m | XML manifest files. Containingbase64 FLV onMetaData headers for an Adobe version of bit rate controlHTTP Live Streaming. |
.f4p | Adobe suffix for media encrypted with the Adobe Accessdigital rights management scheme which is based on the same protection scheme that their RTMP protocol uses.[43] |
.f4v | Similar to iTunes M4V files which are based onMP4 and 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 theISO base media file format.[44][43] |
.fla | 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 theMicrosoft Compound File Format. In Flash Pro CS5, the fla file format is a zip container of an XML-based project structure. |
.flp | 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. |
.flv | Flash video files, as created by Adobe Flash,ffmpeg,Sorenson Squeeze, orOn2 Flix. The audio and video data within FLV files are encoded in the same way as they are within SWF files. |
.fxg | Unified xml file format being developed byAdobe forFlex, Flash,Photoshop and other applications. |
.jsfl | Adds functionality in the Flash Authoring environment; they contain JavaScript code and access the Flash JavaScript API. |
.mxml | 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 class. |
.sol | Adobe Flash Player container to holdLocal Shared Objects (data stored on the system running the Flash player). |
.spl | FutureSplash Animator documents. |
.swc | Container for distributing components; they contain a compiled clip, the component's ActionScript class file, and other files that describe the component. |
.swd | Temporary debugging files used during Flash development. Once finished developing a Flash project these files are not needed and can be removed. |
.swf | Completed, compiled and published files that cannot be edited with Adobe Flash. However, several non-Adobe '.swfdecompilers' exist (like that of Sothink) to convert SWF back to the FLA format,[45] or to the more recentApache Flex format.[46] Attempting to import .swf files using Flash allows it to retrieve some assets from the .swf, but not all.[47] |
.swt | 'Templatized' forms of .swf files, used by Macromedia Generator. It is alsoAdobe Dreamweaver's Flash template file extension.[48] |
.xfl | 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. |
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 SWF files.