Fact-checked by Grok 2 weeks ago

SWF

A sovereign wealth fund (SWF) is a state-owned or entity that manages a country's surplus financial assets, such as revenues from exports, , or fiscal surpluses, to generate long-term economic benefits for current and future generations. These funds typically invest in a diversified of assets, including equities, , , , and , both domestically and internationally, with the primary goals of wealth preservation, economic stabilization, and . Sovereign wealth funds emerged prominently in the mid-20th century, with the first example being Kuwait's Reserve Fund established in 1953 to manage oil revenues, followed by rapid growth in the and due to booms in resource-rich nations. By 2025, there are over 90 active SWFs worldwide, including recent initiatives such as the U.S. national established via in February 2025, collectively managing more than $13 trillion in (AUM) as of 2025, representing a significant portion of global institutional investment capital. The largest SWFs include Norway's Government Pension Fund Global, with approximately $2 trillion in AUM as of 2025, primarily funded by oil and gas revenues and invested ethically to promote ; China's , valued at around $1.3 trillion and focused on diversifying foreign reserves; and the Abu Dhabi Investment Authority, estimated at over $1 trillion and known for its opaque but influential global investments. SWFs are classified into several types based on their objectives: stabilization funds to buffer against economic volatility, savings funds for , development funds to support domestic infrastructure and economic growth, and reserve investment corporations to enhance returns on central bank reserves. Governance practices vary, but many adhere to standards like the Santiago Principles, a voluntary code established in 2008 by the International Forum of Sovereign Wealth Funds to promote transparency, accountability, and prudent investment policies, addressing concerns over political influence and market distortions. These funds play a crucial role in global finance, often acting as long-term investors that stabilize markets during crises, such as through increased equity purchases during the 2008 financial meltdown and the downturn, while also facing scrutiny for potential geopolitical risks in their investment strategies.

Overview

Definition and Characteristics

The SWF (Small Web Format) file format is a compact format designed for delivering animations, , interactive content, and multimedia elements such as audio and video over the . It was originally developed as Shockwave Flash but renamed to emphasize its efficiency for applications. Key characteristics of SWF include support for using paths defined by straight lines and quadratic Bézier curves, which allow for resolution-independent rendering similar to SVG but in a binary structure. The format embeds bitmaps for raster images, enables scripting for user interactivity, and applies compression techniques such as zlib (introduced in version 6) or LZMA (from version 13) to minimize file sizes while maintaining a rectangular bounding box for display areas. These features facilitate smooth playback of frame-based animations, gradients, and mixed media without requiring server-side processing. The SWF file header, spanning the initial 8 bytes, provides essential for playback. It begins with a 3-byte —'FWS' for uncompressed files or 'CWS' for zlib-compressed ones (with 'ZWS' for LZMA in later versions)—followed by a 1-byte version number ranging from 1 to 32 in final implementations. Subsequent fields include a 4-byte unsigned for total file length, a RECT structure specifying frame size in twips (1/20th of a ), a 2-byte in 8.8 fixed-point format (typically 1 to 655.35 frames per second), and a 2-byte unsigned for the frame count. Unlike text-based formats such as XML or , SWF's binary encoding uses bit-packing and tags for efficient storage, resulting in significantly smaller files that enabled rapid loading on early internet connections during the and . This design prioritizes delivery speed and low usage, making it suitable for browser-embedded content.

Primary Uses

SWF files were primarily designed for delivering compact, interactive content over the , serving as the output format for animations, illustrations, and embedded audio/video playback created with authoring tools like . These applications leveraged the format's efficiency in handling , which maintain quality across different screen sizes, to create engaging web-based experiences such as animated banners and illustrative diagrams. A key strength of SWF lay in its support for , enabling developers to incorporate user input through and events, form submissions, and of . This facilitated the creation of simple browser-based , interactive advertisements that responded to user actions, and e-learning modules or product demonstrations where updated in real-time based on user interactions. For instance, scripting allowed for handling events like button clicks to submit or load external resources, making SWF ideal for rich internet applications that communicated with servers. SWF files were typically exported from and embedded in web pages using tags such as <embed> or <object>, allowing playback via the Flash Player plugin in . They could also be compiled into standalone files, bundling the runtime for offline execution without requiring a . In niche applications, SWF supported delivery through Flash Lite for pre-iOS devices, enabling lightweight animations and video streaming on feature phones and early smartphones. Additionally, via the runtime, SWF-based content powered applications, interactive experiences as native executables for platforms like Windows and macOS. Server-side generation of SWF for dynamic was possible using libraries like Ming, allowing programmatic creation of customized animations from languages such as .

History

Early Development

FutureWave Software was founded in January 1993 in , , by Jonathan Gay, Charlie Jackson, and Michelle Welsh, initially to develop graphics and animation software for pen-based personal digital assistants (PDAs) such as the and GO Corporation's PenPoint operating system. The company's first product, SmartSketch, was a vector drawing application released in 1995, but FutureWave soon pivoted toward web-compatible animation tools amid growing interest in online multimedia. In May 1996, FutureWave released FutureSplash Animator version 1.0, an authoring tool designed for creating compact 2D -based animations suitable for the early . This initial version provided basic drawing tools, support for tweening to generate smooth transitions between keyframes, and export capabilities to the .spl —a structure optimized for small file sizes and playback over dial-up connections supporting 8-bit (256-color) graphics at a default of 12 frames per second. Accompanying the software was the FutureSplash Player, a for (and later ), which enabled animations to stream progressively in web browsers, allowing immediate playback without waiting for complete downloads—a critical innovation for the bandwidth-constrained of the mid-1990s, where speeds rarely exceeded 28.8 kbps. The binary efficiency of the .spl format laid the groundwork for web animation standards by prioritizing lightweight, over pixel-heavy alternatives like GIFs. By late 1996, FutureSplash had gained early adopters including and , demonstrating its potential for interactive web content. In December 1996, Macromedia acquired , integrating FutureSplash Animator into its portfolio and rebranding it as Macromedia 1.0 shortly thereafter.

Macromedia and Adobe Periods

In 1997, Macromedia acquired FutureWave Software and rebranded FutureSplash Animator as Macromedia Flash 1.0, establishing the SWF (Small Web Format) as the core runtime file format for delivering vector-based animations and interactive content via web browsers. This rebranding positioned Flash as a lightweight alternative to heavier multimedia tools, with the SWF format enabling compact files suitable for dial-up internet speeds of the era. By May 1998, Flash 3.0 introduced key enhancements including alpha transparency for layered graphics and licensed MP3 audio compression, significantly improving visual and sound capabilities for web designers. During the Macromedia era from 1997 to 2005, integrated seamlessly with software to support the broader Shockwave platform, allowing developers to embed SWF content within more complex multimedia projects for enhanced interactivity on the . Versions 4 through 8 expanded functionality progressively: 4 (1999) introduced the initial programming language for basic scripting; 5 (2000) formalized 1.0 with object-oriented features; and MX (version 6, 2002) advanced developer tools with 2.0, timeline effects, and the Sorenson video codec for embedded streaming video, while adding options like support. 8 (2005) further refined video handling with the On2 VP6 codec and bitmap filters, solidifying 's role in rich media production. These updates were accompanied by ongoing security patches addressing vulnerabilities such as buffer overflows in earlier players, with Macromedia issuing regular advisories to mitigate remote code execution risks. Following Adobe's acquisition of Macromedia in 2005, Flash development accelerated, with versions 9 through 11 (corresponding to SWF versions 9 through 11 from 2006 to 2011) introducing advanced multimedia support tailored for evolving web and mobile ecosystems. Flash Player 10 (2008) added Pixel Bender for GPU-accelerated effects, while version 10.1 (2010) enabled H.264 video codec integration for high-quality streaming and , alongside expanded 3D graphics via libraries. Adobe also advanced mobile deployment through Flash Lite, a lightweight variant for devices like early smartphones, allowing SWF playback on non-PC platforms. By this period, Flash achieved peak browser penetration exceeding 95% globally, powering interactive advertisements, games, and video sites. Key milestones included Flash CS3 (2007, version 9) with improved tools and the 2006 launch of Adobe Flex, a for building data-driven rich internet applications (RIAs) using MXML and , which streamlined enterprise development. Adobe continued proactive security measures, releasing monthly patches for critical flaws like type confusion vulnerabilities in these versions to counter exploitation attempts.

Discontinuation

In July 2017, announced the end-of-life for Flash Player, scheduling the cessation of updates and distribution by the end of , primarily due to persistent vulnerabilities—such as zero-day exploits including CVE-2015-5119 and CVE-2019-7845 that enabled —and the growing adoption of open web standards like HTML5. This decision followed years of Flash's dominance in web multimedia during the , marking a shift away from proprietary plugins toward more secure, native browser technologies. The official end-of-life arrived on December 31, 2020, after which blocked all content from running in the player starting January 12, 2021, with major browsers like , , and enforcing similar restrictions to prevent security risks. To support legacy access for non-malicious purposes, released a final offline installer version of , allowing limited playback on isolated systems without connectivity. Following discontinuation, enterprises accelerated migrations of Flash-based applications and content to and , leveraging tools like Animate's export features and third-party converters to ensure compatibility across modern browsers and devices. For cultural preservation, community efforts such as the project emerged, archiving over 100,000 Flash games and animations to safeguard web history from . As of 2025, Adobe provides no official support for SWF or Flash Player, rendering it incompatible with current web ecosystems, though open-source emulators like Ruffle—a Rust-based Flash Player implementation—enable partial browser-based playback of verified, non-malicious content through WebAssembly.

Technical Specifications

File Structure and Tags

The SWF file format is organized as a binary stream beginning with a fixed header followed by a sequence of variable-length tags that define the multimedia content, concluding with an End tag to mark the file's termination. The header spans 8 to 12 bytes and includes essential metadata: a 3-byte signature ("FWS" for uncompressed files or "CWS" for compressed), a 1-byte version number, a 4-byte file length (indicating the total size in bytes, with the uncompressed size for CWS files), a RECT structure for frame size, a 2-byte frame rate (in 8.8 fixed-point format), and a 2-byte frame count. The version number in the header determines the availability of certain tags, though the core structure remains consistent across versions. For compressed SWF files (identified by the "CWS" ), zlib compression is applied to the body starting immediately after the initial 8 bytes (, , and file length), enabling smaller file sizes while preserving the tag-based organization upon . Following the header, the file consists of a series of tags, each representing a discrete instruction or definition for rendering elements such as , animations, or ; these tags are processed sequentially until the End tag (type 0) is encountered. There are over 80 defined tag types in the format, allowing for the modular construction of complex movies through combinations of definition tags (which create reusable assets) and control tags (which place or manipulate them on the display list). Each tag begins with a RECORDHEADER: a 2-byte short header combining a 10-bit tag ID (indicating the type) and a 6-bit length (for up to 62 bytes), or a long header extending to a 4-byte length field for larger payloads, ensuring efficient of variable-sized . Tags define core movie elements, including vector shapes via tags like DefineShape (which specifies bounds, fill styles such as solid colors or gradients, and line styles with widths and colors), bitmaps imported as or through DefineBits or DefineBitsJPEG2, embedded fonts using DefineFont with shapes derived from outlines, and audio via DefineSound for formats like or ADPCM. Control tags such as PlaceObject position characters (reusable assets) on the display list with transformation matrices, while ShowFrame advances the to render the current frame. Record formats within tags employ bit-packing for compactness, exemplified by the RECT structure used for bounds and dimensions: it starts with a 5-bit field specifying NBits (the number of bits per coordinate, typically 0-15), followed by four signed bit fields (Xmin, Xmax, Ymin, Ymax) each of NBits length, measured in (where 1 twip equals 1/20th of a ) to provide sub- . This bit-packed approach extends to other records, such as matrices for and (using fixed-point values for , , and skew) and shape records that outline paths with straight lines, curves, or style changes, enabling the efficient encoding of without redundant data. The following table summarizes selected major tag types central to the file structure, highlighting their roles in defining and controlling content:
Tag IDTag NamePurpose
0EndTerminates the sequence of tags.
1Renders the current display list as a frame in the .
2Defines a basic shape with bounds, fills, and lines.
4PlaceObjectPlaces a defined on the display list with and .
6DefineBitsImports and defines a .
10DefineFontDefines font glyphs using shape tables for text rendering.
14DefineSoundDefines an event-based clip (e.g., or ADPCM data).
20DefineBitsLosslessDefines a lossless (ZLIB-compressed PNG-like data).
21DefineBitsJPEG2Defines a with separate alpha channel.
22Extends shape definition with edge capabilities.
26PlaceObject2Enhanced placement with color transforms and ratios.
These tags collectively form the backbone of SWF , where definition tags must precede their usage in control tags to build the movie's visual and audio hierarchy.

ActionScript Integration

serves as the primary for embedding interactivity and logic within SWF files, enabling dynamic behaviors such as user input handling, control, and content manipulation. It operates through two main virtual machines: AVM1 for earlier versions and AVM2 for modern implementations, with scripts compiled into for efficient execution by the runtime. The language evolved across versions to support increasing complexity. ActionScript version 1.0, introduced with Flash 4 in 1999, provided simple actions for basic operations like playback control and variable manipulation. Version 2.0, released in 2003 with Flash MX 2004, introduced elements, including classes and inheritance, while maintaining compatibility with AVM1. ActionScript version 3.0, launched in 2006, adheres to standards for enhanced performance and scalability, compiling source code to ActionScript Byte Code (ABC) stored within DoABC tags for AVM2 execution. These versions allow developers to attach scripts directly to timeline elements, buttons, or frames, facilitating responsive applications without altering the core file structure. Scripts are embedded via specific tags that integrate code into the SWF's tag stream. In AVM1 (for versions 1.0 and 2.0), actions are placed in DefineButton or PlaceObject tags, utilizing a stack-based model with opcodes like ActionPush for data loading onto the stack and ActionGotoFrame for navigation. AVM2 (for version 3.0 and later) employs a register-based bytecode system with structured elements such as traits for class definitions and methods for function implementation, also embedded in DoABC tags; DoAction tags provide additional placement for frame-level scripts. This embedding ensures scripts execute in context with visual and interactive elements defined elsewhere in the file. Execution occurs as the player processes tags sequentially during playback, interpreting on frame loads or . handlers, such as onClipEvent for mouse clicks, key presses, or load , trigger scripts in response to user interactions or timeline milestones, processed via control flows like ShowFrame tags. To enforce , the applies a model that isolates SWF content by domain, restricting cross-domain access—such as loading external data or scripts—unless explicitly allowed via policy files, preventing unauthorized resource sharing between untrusted sources. Central to ActionScript's functionality are core concepts like MovieClip objects, which represent interactive sprites or symbols with their own , enabling programmatic control over animation states and child elements. Display lists manage the hierarchical layering and rendering of visual objects, allowing scripts to add, remove, or reorder items for complex scenes. A representative example is the command _root.gotoAndPlay(1), which targets the main to jump to frame 1 and resume playback, illustrating timeline manipulation in practice. These mechanisms prioritize efficient, event-driven interactivity while adhering to the SWF's sequential processing model.

Versions and Evolution

The SWF file format originated with in 1996, introducing basic , simple shapes, text, and flat display lists using tags such as PlaceObject, RemoveObject, DefineShape, and DefineBits for uncompressed audio and bitmaps, enabling rudimentary animations. Version 2, released in 1997, expanded support for shapes with over 255 styles via DefineShape2, added lossless bitmaps (DefineBitsLossless) and 2/PNG/GIF formats, and introduced color transforms and sound effects for buttons, along with debugging via the EnableDebugger tag. Versions 3 through 5, spanning 1998 to 2000, built on these foundations by adding hierarchical display lists, alpha channel support for shapes (DefineShape3) and bitmaps (DefineBitsJPEG3, DefineBitsLossless2), shape morphing (DefineMorphShape), and sprites (DefineSprite) in version 3; dynamic text (DefineEditText) and audio in version 4; and an enhanced ActionScript model with object-oriented features, functions, and asset in version 5, while increasing the maximum ID count to 48. From versions 6 to 8 (2002–2005), key advancements included ZLIB compression (CWS files), encoding, device fonts (DefineFontInfo2), Sorenson H.263 video, and Nellymoser audio in version 6, with extended tag lengths for larger records; 2.0 support, script limits, and screen video in version 7; and filters (e.g., , ), , bitmap caching (PlaceObject3), advanced gradients, and VP6 video with alpha in version 8, raising tag IDs beyond 48. Version 9 (2006) marked a major shift with ActionScript 3.0 and the AVM2 virtual machine (DoABC tag), EncodedU32 integers, XML metadata support via FileAttributes, and font naming (DefineFontName), requiring players to ignore legacy DoAction tags if the AS3 flag is set. Versions 10 to 14 (2008–2013) introduced flags (UseDirectBlit, UseGPU), deblocking for JPEGs (DefineBitsJPEG4), Compact Font Format (CFF) fonts (DefineFont4), and audio at 16 kHz in version 10; LZMA compression (ZWS files) in version 13; and GPU-accelerated via Stage3D in later iterations, supporting up to 82+ tag IDs and extended length fields from version 6 onward. Subsequent versions from 19 onward (starting around 2013) maintained while adding efficiency improvements like enhanced options and support for advanced rendering; 32, reached in 2020, represents the theoretical maximum for the format's legacy ecosystem, ensuring compatibility with all prior features through header checks. Throughout its evolution, SWF ensured interoperability by having players ignore unknown tags and scripts specify the Virtual Machine (AVM) , with file lengths encoded as 32-bit unsigned integers supporting up to 4 GB.

Adoption and Impact

Peak Usage

During the 2000s, particularly from 2000 to 2010, the SWF format achieved its zenith as the dominant technology for delivering rich internet content, powering over 95% of interactive multimedia on the through . This era saw SWF files embedded via browser plugins become essential for animations, games, and video playback, enabling dynamic experiences that static could not match. Key platforms like relied on SWF for video streaming before the widespread adoption of , with handling the majority of online video traffic—over 90% by 2009. Similarly, sites such as hosted thousands of user-generated SWF-based games and animations, fostering a vibrant community of casual gaming that attracted millions of users monthly. Statistical metrics underscore this peak: by 2005, Flash Player had reached 98% penetration on internet-connected PCs, expanding to nearly 98% of all internet-enabled desktops by and surpassing 1 billion Flash-enabled devices globally by 2010. Corporate adoption was equally robust, with approximately 70% of 100 company websites incorporating SWF for advertisements and animations during this period. These figures highlight SWF's role in transforming the web from text-heavy pages to interactive environments, used extensively in corporate microsites for engaging user interfaces. Notable implementations exemplified SWF's versatility in interactive media. In 2001, pioneered branded content with interactive banners and microsites using Flash for promotional films like "The Hire" series, blending video and user interaction to captivate audiences. Casual games thrived on SWF, as seen in titles like those on , which peaked at 75 million monthly users, and elements of social games such as , which leveraged Flash for farming simulations on starting in 2009. Video playback via FLV containers embedded in SWF files further solidified its media dominance, enabling seamless streaming on platforms like early . The SWF ecosystem extended beyond browsers through integration with HTML plugins and the introduction of in 2008, allowing SWF-based applications to run as desktop software. AIR enabled cross-platform desktop apps, such as the Pandora One music player, which used SWF components for offline access and rich interfaces, exemplifying how the format bridged web and native experiences during its peak. This integration amplified SWF's reach, with many applications originating in the late .

Decline and Alternatives

The decline of SWF began in the early , driven primarily by persistent vulnerabilities that exposed users to exploits through malicious SWF files. Between 2010 and 2015, faced numerous critical flaws, with reports indicating over 50 (CVEs) annually by 2013, enabling attackers to gain control of systems via drive-by downloads and zero-day attacks. These issues eroded trust, as issued frequent patches that often failed to keep pace with emerging threats, contributing to Flash's reputation as a "giant hole." Compounding security concerns, SWF's lack of native support accelerated its fall, particularly following Apple's 2010 decision to from devices. In his open letter "," highlighted 's incompatibility with multitouch interfaces, excessive battery drain, and poor performance on touch devices, arguing it hindered the experience. This exclusion from the and ecosystems, which rapidly dominated the , forced developers to alternatives, as SWF failed to smoothly on touchscreens without custom hacks that exacerbated latency and resource demands. The market shifted toward open web standards, with HTML5's and APIs emerging around 2011 to handle and interactive animations previously reliant on SWF. Browsers began natively supporting H.264 video encoding, eliminating the need for plugins for streaming, as major platforms like transitioned to video playback. JavaScript frameworks facilitated this migration; for instance, CreateJS provided tools to port ActionScript 3 code to , enabling developers to recreate SWF-based interactions using modular libraries like EaselJS for rendering and TweenJS for animations. To aid the transition, tools like Adobe Scout offered profiling for optimizing SWF performance by identifying bottlenecks in code, graphics, and CPU usage on content. Google's Swiffy, launched in and active until , converted SWF files to and via a cloud-based service, supporting up to ActionScript 3 for animations and simple games, though it had limitations with advanced features. By 2025, SWF sees minimal active development, persisting mainly in e-learning systems compliant with SCORM standards, where emulators preserve archival content; web usage has dropped to less than 1% of sites, reflecting near-total replacement by modern formats.

Standards and Licensing

Published Specifications

Adobe published the SWF File Format Specification as part of its Open Screen Project initiative starting in , with documents covering versions 10 through 19 released between and 2013. These official specifications, distributed as free PDF files, range from approximately 200 to 240 pages each and serve as technical references for developers creating or parsing SWF files. The most recent, Version 19 from 2012, details the binary format's core components, including the header structure, tag-based organization, and support for elements like , audio, and video. Although the official specifications ended with version 19, the SWF format evolved to version 32 to match the final Flash Player 32 release in 2019, with undocumented changes. The scope of these specifications is comprehensive in defining the tag system, which forms the backbone of SWF content, along with associated data structures and the Virtual Machine 2 (AVM2) bytecode introduced in version 9. Tags are categorized into definition types (e.g., for shapes, bitmaps, and fonts) and control types (e.g., for display list management and frame advancement), with precise field layouts and encoding rules. For instance, the DefineBitsLossless tag (type 20) specifies lossless bitmap handling, including support for PNG-compressed data via ZLIB, with fields for character ID, format (e.g., 8-bit indexed or 24-bit RGB), dimensions, and compressed pixel data. A outlines parsing rules using bit-level like unsigned bits (UB) and encoded integers, enabling reliable file interpretation without ambiguity. However, proprietary aspects such as full H.264 codec implementations are omitted, with references directed to external standards like H.264. Prior to Adobe's full publications, released partial SWF specifications from 1998 to 2005, beginning with version 3 in October 1998 and extending to more detailed versions like in 2004. These earlier documents, also available as PDFs, covered basic file headers, initial tag sets, and compression options but lacked the depth of later releases, particularly regarding AVM2 and advanced integration. Following Adobe's discontinuation of Flash Player support on , 2020, the specifications remain freely downloadable from third-party archives and mirrors, preserving access for legacy analysis and tool development. Notable gaps include the absence of Flash Player and a deliberate focus on format compliance for third-party SWF writers and readers, rather than implementation specifics.

Licensing Terms and Implementations

The SWF format is a proprietary technology owned by Systems Incorporated, with the Adobe Flash Player runtime distributed free of charge to end-users for playback purposes. Authoring tools, such as Professional (later ), required paid licenses for creating SWF content until the product's official end-of-life on December 31, 2020. Following discontinuation, no royalties are imposed on SWF usage or implementation, and the format is open to reverse-engineering under principles for legacy preservation, though recommends migrating content to modern open standards due to unresolved security vulnerabilities. Under 's stewardship in the 1990s, the permitted free distribution of the plugin to facilitate widespread adoption. Adobe's acquisition of Macromedia in 2005 preserved this model initially, but in May 2008, Adobe's Open Screen Project removed all prior licensing restrictions on the SWF specifications, enabling third-party developers to create compatible runtimes and tools without fees, subject to attribution of Adobe's contributions and adherence to general terms of use. This policy shift facilitated broader ecosystem development while maintaining Adobe's rights over the core format. Key implementations of SWF playback and generation include Adobe's own Flash Player, a proprietary runtime that supported versions up to SWF 32 until its global blocking in browsers starting January 12, 2021. Open-source alternatives emerged to fill the gap, such as Gnash, a GNU Project initiative written in C++ that aims for complete SWF v7 compatibility and partial support for later versions as a standalone player or browser plugin. Lightspark, launched in 2010 and also implemented in C++, focuses on hardware-accelerated rendering for Linux and Windows environments. Ruffle, developed since 2020 in Rust, provides a secure, WebAssembly-based emulator optimized for modern web browsers, emphasizing ActionScript 3 compatibility for interactive legacy content. For server-side authoring, the Ming library offers bindings for languages like PHP, C++, and Python to generate SWF files dynamically without requiring Adobe tools. By 2025, SWF implementations are sustained primarily through Ruffle, which continues active development with nightly releases as of November 2025, under an , while Gnash and Lightspark have limited recent activity, under licenses like GPL and LGPL, primarily for archival and nostalgic purposes, with developers issuing routine security advisories given the format's historical exploit risks.

Flash Ecosystem Formats

The Flash ecosystem includes several proprietary formats developed by Adobe to support the creation, editing, and runtime execution of SWF content, forming an integrated workflow centered around the SWF as the primary runtime format. Source formats for SWF production primarily consist of editable project files. The FLA (Flash Authoring) format serves as the native project file for (formerly ), storing , timelines, scripts, and media assets in a structured . Earlier versions of FLA, prior to Flash CS5, utilized a binary format based on the , which encapsulated all project elements for editing and compilation into SWF. Starting with Flash CS5, FLA adopted an XML-based structure packaged within a archive, enabling better interoperability and by representing elements like libraries and documents as discrete XML files. The FLP (Flash Project) format, introduced in Flash Professional CS3, functions as a lightweight file that references multiple FLA files and assets, facilitating collaborative and organization without embedding all content directly. Companion formats enhance SWF functionality by providing reusable assets, data , and multimedia integration. The SWC (Shockwave Component) format packages compiled movie clips, 3.0 classes, and associated assets into a archive, including a catalog.xml file for , allowing developers to import modular components directly into projects for reuse across SWF applications. The AMF () is a binary embedded within SWF files for remote data exchange, supporting AMF 0 (a simple type-based encoding for objects) and AMF 3 (an optimized variant with compact integer encoding and dynamic class definitions), primarily used in remoting scenarios like Flex applications communicating with servers. The FLV () format acts as a for video and audio streams playable within SWF via the Video class, featuring a header followed by tagged audio, video, and packets, with support for codecs like Sorenson Spark or On2 VP6 for video and for audio. Extensions and variants further support development and automation within the ecosystem. source files use the AS extension and are plain-text files containing code that compiles into SWF , enabling programmatic control of animations and interactions. JSFL (JavaScript Flash) files are JavaScript scripts with the JSFL extension, designed to automate tasks in the , such as FLA files or generating assets. The XFL format represents an uncompressed variant of FLA, introduced in CS5 as a folder-based structure of XML and binary files, ideal for systems like by avoiding binary diffs in compressed archives. These formats interrelate to streamline SWF development: FLA projects compile directly to SWF via the Animate publish process, incorporating AS scripts and optionally embedding libraries for modular and assets; FLV videos integrate into SWF timelines for playback; AMF handles within SWF for dynamic content; and tools like JSFL and /FLP enhance authoring efficiency and collaboration.

Modern Successors

Following Adobe's announcement of Flash Player's end of life in 2020, web technologies based on open standards emerged as direct successors to SWF, enabling rich multimedia experiences natively in browsers without proprietary plugins. For graphics and animation, HTML5 Canvas provides a bitmap-based for 2D drawing and dynamic rendering, allowing developers to create animations and interactive visuals directly in . offers with XML-based definitions, supporting animations through SMIL and CSS, which replicate SWF's vector capabilities while ensuring resolution independence across devices. delivers hardware-accelerated 3D graphics via a based on , enabling complex scenes and effects previously reliant on SWF's Stage3D. Libraries such as PixiJS, which leverages and Canvas for fast 2D rendering, and , a wrapper for and animation, further mimic SWF's authoring workflow for games and interactive content. Interactivity and scripting in modern web development rely on JavaScript (ES6 and later), which powers event handling, DOM manipulation, and logic execution natively in browsers. Frameworks like facilitate declarative UI construction for responsive applications, while enables browser-based game development with physics and asset management, often positioned as a alternative for 2D titles. For compute-intensive tasks, compiles high-level languages to a binary format for near-native performance, handling simulations and processing that SWF offloaded to its . Video and audio playback shifted to the native HTML5 <video> element, which supports codecs like H.264 and WebM for streaming and progressive download without external dependencies, eliminating the need for SWF's FLV container and plugin. Migration from SWF involved tools like Adobe Animate, which imports legacy .fla files and exports to HTML5 Canvas documents using CreateJS for JavaScript-based output, preserving tweens, symbols, and interactivity where possible. These open formats enhance cross-platform compatibility on desktops and mobiles, mitigating SWF's plugin-related security vulnerabilities and lack of native mobile support.

References

  1. [1]
    What is a Sovereign Wealth Fund? - IFSWF
    A sovereign wealth fund is owned by the general government, which includes both central government and sub-national governments. Includes investments in foreign ...
  2. [2]
    SWFI - Sovereign Wealth Fund Institute
    A Sovereign Wealth Fund (SWF) is a state-owned investment fund or entity that is commonly established from: Balance of payments surpluses; Official foreign ...
  3. [3]
    Sovereign Wealth Fund (SWF): Definition, Examples, and Types
    A sovereign wealth fund (SWF) is a state-owned investment fund that manages a country's surplus reserves to generate economic benefits for its citizens.Missing: encyclopedia | Show results with:encyclopedia
  4. [4]
    Sovereign Wealth Fund (SWF) - Overview, Types, Investing Conditions
    A sovereign wealth fund (SWF), also known as a social wealth fund, is the surplus money that a country accrues over time.Summary · Types Of Social Wealth Funds · 1. Stabilization Funds
  5. [5]
    FAQs - Global SWF
    A Sovereign Wealth Fund (“SWF”) is an investment vehicle owned by a national or regional government that buys, holds, and sells securities and/or assets on ...
  6. [6]
    [PDF] SWF FILE FORMAT SPECIFICATION VERSION 19 - Open Flash
    It associates a blob of binary data with a standard SWF 16-bit character ID. The character ID is entered into the SWF file's character dictionary.
  7. [7]
    Adobe Flash SWF File Format, Version 8 - Library of Congress
    May 24, 2024 · Binary file format that Delivers vector graphics (especially animations) and other data types, including "bitmapped" video, over the Internet to ...Missing: characteristics | Show results with:characteristics
  8. [8]
    A Guide to SWF Files | Adobe
    The SWF (Small Web Format) file type is an Adobe Flash file format that can contain text, vector graphics, raster graphics, and video-based animation. It's also ...
  9. [9]
    Flash SWF File Format Family - The Library of Congress
    May 24, 2024 · Adobe Flash (SWF) Versions 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 and 30 not separately documented.
  10. [10]
    Best practices - SWF application authoring guidelines
    May 24, 2023 · Use this guide to understand the guidelines for authoring SWF application.Sending And Processing Data · Adding Data Loading And... · Using The Mvc Design Pattern
  11. [11]
    How to export files into SWF and other formats from Animate
    May 24, 2023 · To add the content to your page, export SWF files directly to an Adobe® Dreamweaver® site. Dreamweaver generates all the needed HTML code. You ...
  12. [12]
    Flash Lite - Adobe
    Flash Lite 3 brings engaging experiences like web content and streaming video (FLV) to mobile and consumer electronic devices.Flash Lite architecture diagram · Version comparison · FeaturesMissing: pre- iOS
  13. [13]
    Publishing for Adobe AIR for desktop in Animate
    May 24, 2023 · When you Publish an AIR file, Animate creates a SWF file and XML application descriptor file and packages copies of both, along with any other ...
  14. [14]
    SERVER-SIDE DYNAMIC FLASH - Flylib.com
    Ming. http://www.opaque.net/ming/. Ming is a library that allows developers to programmatically create Flash movies from languages such as C and PHP. Previous ...
  15. [15]
    The rise and fall of Adobe Flash - Ars Technica
    Jul 7, 2020 · Macromedia soon agreed to acquire FutureWave—a deal formally ... acquired the technology as part of a $3.6 billion buyout of Macromedia.<|control11|><|separator|>
  16. [16]
    FutureSplash Animator in 1996 - Web Design Museum
    The program was developed in the mid-90s by FutureWave Software. In January 1993, Jonathan Gay, Charlie Jackson and Michelle Welsh founded FutureWave Software.
  17. [17]
    Perl Graphics Programming - The History of Flash and SWF - O'Reilly
    The SWF format began in early 1996 as the file format used by a program called FutureSplash Animator. By the end of 1996, ...
  18. [18]
    Flash And Its History On The Web
    Aug 7, 2017 · Which is why Macromedia came calling at the end of 1996. In December of 1996, Macromedia, themselves struggling to get their own web player ...Missing: period | Show results with:period
  19. [19]
    Macromedia Flash 3.0 in 1998 - Web Design Museum
    Macromedia Flash 3.0 included new features such as vector & bitmap transparency, shape morphing, sprite animation, standalone projectors, bandwidth profiling, ...
  20. [20]
    Explain Shockwave Flash? - Super User
    Jan 21, 2011 · Macromedia, seeing this, bought FutureWave and renamed FutureSplash as Shockwave Flash, to serve as a companion to Shockwave. Eventually, Flash ...Missing: Integration | Show results with:Integration
  21. [21]
    A Nostalgic Rummage Through the History of Flash | Envato Tuts+
    Dec 31, 2010 · In December 1996, they sold FutureWave Software to Macromedia, and FutureSplash Animator became Macromedia Flash 1.0: a contraction of "Future" ...Missing: origins | Show results with:origins
  22. [22]
    Macromedia - Flash : Flash 8 Release Notes
    Flash Professional 8 and Flash Basic 8 offer web designers and developers a range of tools including graphic effects, animation, text, video and audio.
  23. [23]
    Adobe Macromedia Flash Products Contain Vulnerabilities - CISA
    Mar 16, 2006 · There are critical vulnerabilities in Macromedia Flash player and related software that may allow an attacker to take control of your computer.
  24. [24]
    Adobe Flash Player End of Life
    Adobe no longer supports Flash Player after December 31, 2020 and blocked Flash content from running in Flash Player beginning January 12, 2021.Sign in · Adobe Express · Australia · Free and discontinued...Missing: history | Show results with:history
  25. [25]
    Flash Player Version History - Media College
    Note: This was the first player released under the Macromedia brand. Flash 3, 1998, Alpha transparency, MP3 support. Flash 4, May 1999, Streaming MP3 support ...
  26. [26]
    Flash Lite: Version comparison - Adobe
    Version comparison, sound support, image and video support, multimedia support, text support, interactivity, programming features, other features.
  27. [27]
    Adobe Flex 2.0 enriches the RIA development experience - InfoWorld
    Adobe Flex 2.0 demonstrates a solid advance in support of RIA (rich Internet application) development and delivery, comprising an updated ...
  28. [28]
    Flash & the Future of Interactive Content - the Adobe Blog
    Jul 25, 2017 · Adobe is planning to end-of-life Flash. Specifically, we will stop updating and distributing the Flash Player at the end of 2020 and encourage content creators ...
  29. [29]
    Security Bulletin for Adobe Flash Player
    Adobe has released security updates for Adobe Flash Player for Windows, macOS, Linux and Chrome OS. These updates address a critical and an important ...
  30. [30]
    Flash To HTML5 - Essential Toolkit For Successful Migration
    Apr 24, 2025 · Want to know how to migrate your legacy Flash courses to HTML? Check this essential toolkit for successful migration from Flash To HTML5.Missing: enterprise WebGL
  31. [31]
    Flashpoint Archive
    Flashpoint Archive is a community effort to preserve games and animations from the web. Internet history and culture is important.Downloads · Welcome to the Flashpoint Wiki! · FAQs · Source Code
  32. [32]
    Ruffle - Flash Emulator
    An open source Flash Player emulator. Made to run natively on all modern operating systems and browsers, Ruffle brings Flash content back to life with no extra ...Ruffle demo · Other Downloads · ActionScript Compatibility · Blog
  33. [33]
    ruffle-rs/ruffle: A Flash Player emulator written in Rust - GitHub
    Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both the desktop and the web using WebAssembly.Ruffle-rs/homebrew-ruffle · Ruffle · Issues 5k+ · Pull requests 137
  34. [34]
    [PDF] Macromedia's Flash Platform | Adobe
    Jun 16, 2005 · 5 In a security sandbox all resources—including appli- cations, data, URLs, and others—known to the Flash cli- ent runtime are associated ...
  35. [35]
    The Evolution of Video Streaming - How Adobe Flash Shaped the Web
    Sep 5, 2025 · In 2009, studies from Nielsen reported Flash-based videos accounted for over 90% of internet video traffic, underscoring its dominance. This ...
  36. [36]
    YouTube drops Flash for HTML5 video as default | The Verge
    Jan 27, 2015 · YouTube, which used the platform as the standard way to play its videos, has dumped Flash in favor of HTML5 for its default web player.
  37. [37]
    The rise and fall of Flash, the annoying plugin that shaped ... - WIRED
    Sep 18, 2019 · The accidental creation of Flash turned it into a cacophony of noise, colour, and controversy, presaging the modern web.Missing: penetration | Show results with:penetration
  38. [38]
    Adobe Advances Flash Platform at Mobile World Congress - eWeek
    ... Adobe's projections of having Flash ship on 1 billion devices by 2010. And Flash will ship on an additional 1.5 billion devices within the next two years.
  39. [39]
    QuickTime, Director, Flash part of BMW Web site - Macworld
    The proprietary player, dubbed the BMW Interactive Film Player, lets you view enhanced QuickTime films that play up to 2.5 times larger than ...
  40. [40]
    Goodbye Flash, goodbye FarmVille | TechCrunch
    Dec 31, 2020 · Adobe has been planning for the end, announcing in 2017 that it would phase out Flash by the end of this year. Most web browsers have already ...
  41. [41]
    Adobe AIR - Wikipedia
    AIR is a runtime environment that allows Adobe Animate content and ActionScript 3.0 coders to construct applications and video games that run as a stand-alone ...
  42. [42]
    Flash Player is Dead, Long Live Flash Player! - Krebs on Security
    Aug 2, 2017 · Adobe last week detailed plans to retire its Flash Player software, a cross-platform browser plugin so powerful and so packed with security holes.<|control11|><|separator|>
  43. [43]
  44. [44]
    What was behind the surge of Adobe Flash Player vulnerabilities ...
    Jan 4, 2016 · According to the NVD, in 2013 56 CVEs were issued for Flash Player vulnerabilities. In 2014, the number increased somewhat to 74. But going from ...Missing: decline 2010-2015
  45. [45]
    Jobs: Why Apple banned Flash from the iPhone - CNET
    Apr 29, 2010 · Jobs also knocked Flash for being proprietary, sapping battery power, not supporting multitouch interfaces, posing security risks, and being ...
  46. [46]
    Web development: HTML5 puts Flash on the sidelines - IONOS
    Jan 8, 2020 · The completely overworked version of the animation software supports the native HTML5 Canvas element and the 3D graphical interface WebGL. Both ...
  47. [47]
    CreateJS | A suite of JavaScript libraries and tools designed for ...
    A suite of modular libraries and tools which work together or independently to enable rich interactive content on open web technologies via HTML5.EaselJS · Getting Started · Downloads · TweenJS
  48. [48]
    Getting Started with Scout - AIR SDK
    Adobe Scout is the next-generation profiler for AIR content running on both the desktop (Flash Player) and on mobile devices (Adobe AIR).Missing: optimization | Show results with:optimization
  49. [49]
    Usage Statistics of Flash as Client-side Programming Language on ...
    Flash is used as client-side programming language by 0.8% of all the websites. Historical trend. This diagram shows the historical trend in the percentage of ...
  50. [50]
    Rapid authoring tips to tackle legacy Flash eLearning content
    Oct 27, 2020 · To use a Flash decompiler you will need to get access to the Flash SWF file for your course. If your course is hosted on an LMS or intranet, you ...
  51. [51]
    Adobe's Open Screen Project: Write Once, Flash Everywhere
    Apr 30, 2008 · Adobe's Open Screen Project: Write Once, Flash Everywhere. Erick ... Specifically, it is going to open up the SWF and FLV/F4V specifications.Missing: press | Show results with:press
  52. [52]
    [PDF] Macromedia Flash (SWF) File Format Specification Version 7
    The SWF Header. All SWF files begin with the following header: The header begins with a three-byte Signature of either 0x46, 0x57, 0x53 (“FWS”) or 0x46,. 0x57 ...
  53. [53]
  54. [54]
    Adobe seeks to extend reach of Flash, nukes licensing fees
    2008年5月1日 · Adobe plans to eliminate the licensing fees required to distribute its own Flash player and AIR runtime implementations on mobile devices and ...
  55. [55]
    Adobe lifts Flash and AIR development restrictions - The Register
    2008年5月1日 · The company is expected to announce that - as of today - all restrictions on SWF for multi-media and vector graphics and FLV/F4V, for video on ...
  56. [56]
    GNU Gnash - GNU Project - Free Software Foundation
    Flash is an animation file format pioneered by Macromedia which continues to be supported by their successor company, ...
  57. [57]
    Lightspark
    Lightspark is an LGPLv3 licensed Flash player and browser plugin written in C++/C that runs on Linux and Windows. It aims to support all of Adobe's Flash ...Missing: implementations Ruffle Ming
  58. [58]
    libming/libming: SWF output library - GitHub
    Last updated 22nd July 2020. Ming is a Flash (SWF) output library. It can be used from PHP, Perl, Ruby, Python, C, C++, Java, and probably more on the way.
  59. [59]
    Working with Multiple File Types in Animate - Adobe Help Center
    Aug 18, 2025 · SWF files, the compiled versions of FLA files, are the files you display in a web page. When you publish your FLA file, Animate creates a SWF ...About Animate Files · Set Properties For A New Or... · Add Xmp Metadata To A...
  60. [60]
    Macromedia Flash FLA Project File Format - The Library of Congress
    May 24, 2024 · FLA files typically include vector image data for use in animations, timelines to control animation playback, and audio; they may also include " ...Identification and description · Quality and functionality factors · File type signifiers
  61. [61]
    Opening Flash CS6 files with Animate - Adobe Help Center
    May 24, 2023 · As introduced in CS5, Animate continues to support XFL file format, both as a compressed .fla and the uncompressed .xfl file types.
  62. [62]
    Creating Flash Projects | Flash Reference Guide - Peachpit
    Aug 22, 2003 · The New Project window opens and asks you for a name and location for you new project file (the extension to all Flash projects is FLP).
  63. [63]
    [PDF] Action Message Format – AMF 0
    Adobe Systems Incorporated. AMF 3 Specification. 4.1.3 AMF Message. An AMF Message contains information about an individual transaction that is to be performed.
  64. [64]
    [PDF] Adobe Systems Inc. AMF 3 Specification Category
    Action Message Format (AMF) is a compact binary format that is used to serialize. ActionScript object graphs. Once serialized an AMF encoded object graph may be ...
  65. [65]
    What are FLV files and how do you open them? - Adobe
    FLV files are videos saved with a .FLV file extension, developed by Adobe Flash Player to play multimedia content on the internet. Adobe Flash Player was one of ...Pros And Cons Of Flv Files · Learn More About Similar... · You Might Also Be Interested...Missing: specification | Show results with:specification
  66. [66]
    [PDF] Video File Format Specification Version 10
    (For information on the SWF file format, see the SWF File Format Specification at www.adobe.com/go/swf_file_format.)
  67. [67]
    How to use ActionScript with Animate - Adobe Help Center
    May 24, 2023 · Select the type of external file you want to create (ActionScript file or Animate JavaScript file). Edit an existing file in the Script window.Symbols and ActionScript · Adobe, Inc. · Sound and ActionScript<|control11|><|separator|>
  68. [68]
    Specify publish settings for Animate - Adobe Help Center
    May 24, 2023 · Note: ActionScript 1.0 and 2.0 is not supported with Animate. To set a maximum time that scripts can take to execute in the SWF file, enter ...
  69. [69]
    Canvas API - Web APIs | MDN
    - **HTML5 Canvas API as a 2D Graphics Tool**:
  70. [70]
    SVG: Scalable Vector Graphics | MDN
    **Summary of SVG as a Vector Graphics Format for the Web**
  71. [71]
    WebGL: 2D and 3D graphics for the web - Web APIs - MDN Web Docs
    WebGL (Web Graphics Library) is a JavaScript API for rendering high-performance interactive 3D and 2D graphics within any compatible web browser without the ...WebGL tutorial · Getting started with WebGL · Data in WebGL · WebGL constantsMissing: summary replacing
  72. [72]
    PixiJS | The HTML5 Creation Engine | PixiJS
    - **PixiJS Overview**: PixiJS is a 2D rendering library utilizing WebGL and Canvas.
  73. [73]
    Three.js – JavaScript 3D Library
    No readable text found in the HTML.<|separator|>
  74. [74]
    React
    - React is a JavaScript library for building user interfaces, enabling interactive web and native apps.
  75. [75]
    None
    Nothing is retrieved...<|separator|>
  76. [76]
    WebAssembly
    - **Role**: WebAssembly (Wasm) provides high-performance code execution in browsers by serving as a portable compilation target for programming languages, enabling efficient client and server applications.
  77. [77]
    Create and publish HTML5 Canvas documents in Animate
    May 24, 2023 · Animate provides a JSFL script to convert an AS3 document to HTML5 Canvas document. When run, the JSFL script does the following: Creates a new ...<|control11|><|separator|>
  78. [78]
    Adobe Flash Security Issues: Player Problems, Exploit, SWF ...
    Adobe patches seven critical flash vulnerabilities​​ The flaws included memory corruption, integer and stack overflow, and security bypass bugs such as DLL load ...Missing: Macromedia 1997-2010