Adobe Flash (previously called Shockwave Flash and Macromedia Flash) is a set of multimedia software created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate video into web pages, and more recently, to develop rich Internet applications.
Flash can manipulate vector and raster graphics and supports bi-directional streaming of audio and video. It contains a scripting language called ActionScript. Several software products, systems, and devices are able to create or display Flash content, including Adobe Flash Player, which is available for most common web browsers, some mobile phones and other electronic devices (using Flash Lite). The Adobe Flash Professional multimedia authoring program is used to create content for the Adobe Engagement Platform, such as web applications, games and movies, and content for mobile phones and other embedded devices.
Files in the SWF format, traditionally called "ShockWave Flash" movies, "Flash movies" or "Flash games", usually have a .swf file extension and may be an object of a web page, strictly "played" in a standalone Flash Player, or incorporated into a Projector, a self-executing Flash movie (with the .exe extension in Microsoft Windows). Flash Video (FLV) files have a .flv file extension and are either used from within .swf files or played through a flv aware player, such as VLC, or QuickTime and Windows Media Player with external codecs added.
In January 1993, Jonathan Gay, Charlie Jackson, and Michelle Welsh started a small software company called FutureWave Software and created their first product, SmartSketch. A drawing application, SmartSketch was designed to make creating computer graphics as simple as drawing on paper. At first, it did not gain enough of a foothold in its market. As the Internet began to thrive, however, FutureWave began to realize the potential for a vector-based web animation tool that might easily challenge Macromedia's Shockwave technology. In 1995, FutureWave modified SmartSketch by adding frame-by-frame animation features and re-released it as FutureSplash Animator on Macintosh and PC. By that time, the company had added a second programmer Robert Tatsumi, artist Adam Grofcsik, and PR specialist Ralph Mittman. The product was offered to Adobe and used by Microsoft in its early work with the Internet (MSN). In December 1996, Macromedia acquired the vector-based animation software and later released it as Flash, contracting "Future" and "Splash" of the FutureWave name.
An important new development in Flash (as of 2007) is its increasing use in providing the presentation layer in handheld devices. Adobe is courting cell phone and PDA vendors, and partnering to deploy Flash Lite as the user interface.
As of November 2007 Adobe Labs is developing the Adobe AIR Project which is a cross-OS runtime that allows developers to reuse their existing web development skills (Flash, Flex, HTML, Ajax) to build and deploy desktop Rich Internet Applications (RIAs).
The next version of Flash will have two additional components designed for large scale implementation. Adobe is adding in the option to require an ad to be played in full before the main video piece is played. This would be most useful for large scale video sites. Also, Adobe has announced plans to add DRM into the new version of Flash. This way Adobe can give companies the option to link an advertisement with content and make sure that both are played and that they not be changed.
Initially focused on animation, early versions of Flash content offered few interactivity features and thus had very limited scripting capability.
More recent versions include ActionScript, an implementation of the ECMAScript standard which therefore has the same syntax as JavaScript, but in a different programming framework with a different associated set of class libraries. ActionScript is used to create almost all of the interactivity (buttons, text entry fields, drop down menus) seen in many Flash applications.
Flash MX 2004 introduced ActionScript 2.0, a scripting programming language more suited to the development of Flash applications. It is often possible to save time by scripting something rather than animating it, which usually also enables a higher level of editability.
Since the arrival of the Flash Player 9 alpha a newer version of ActionScript has been released, ActionScript 3.0. ActionScript 3.0 is an object oriented programming language allowing for more control and code reusability when building complex Flash applications. ActionScript 3.0 has also allowed for formal software engineering methods to be implemented when working with Flash, because of the object oriented programming approach.
Of late, the Flash libraries are being used with the XML capabilities of the browser to render rich content in the browser. This technology is known as Asynchronous Flash and XML, much like AJAX. This technology of Asynchronous Flash and XML has pushed for a more formal approach of this technology called Adobe Flex, which uses the Flash runtime to build Rich Internet Applications.
This technology can be used in players like those on MySpace and YouTube, to provide protection for the content that the Flash calls, like MP3s and videos. The content called is streamed - or passes - through the Flash files, making downloading for storage a difficult task for most people. Programs such as Real Player Downloader and browser extensions like Firebug can trace the XML files.
In opposition to the decompilers, SWF obfuscators have been introduced to provide a modicum of security, some produced by decompiler authors themselves. The higher-quality obfuscators use traps for the decompilers, making some fail, but none have definitively been shown to protect all content.
Compared to other plug-ins such as Java, Acrobat Reader, QuickTime, or Windows Media Player, the Flash Player has a small install size, quick download time, and fast initialization time. However, care must be taken to detect and embed the Flash Player in (X)HTML in a W3C compliant way. A simple and widely used workaround is provided below:
The use of vector graphics combined with program code allows Flash files to be smaller, or streams to use less bandwidth, than the corresponding bitmaps or video clips. For content in a single format (such as just text, video or audio) other alternatives may provide better performance and consume less CPU power than the corresponding Flash movie, for example when using transparency or making large screen updates such as photographic or text fades.
In addition to a vector-rendering engine, the Flash Player includes a virtual machine called the ActionScript Virtual Machine (AVM) for scripting interactivity at run-time, support for video, MP3-based audio, and bitmap graphics. As of Flash Player 8, it offers two video codecs: On2 Technologies VP6 and Sorenson Spark, and run-time support for JPEG, Progressive JPEG, PNG, and GIF. In the next version, Flash is slated to use a just-in-time compiler for the ActionScript engine.
The Adobe Flash Player exists for a variety of systems and devices: Windows, Mac OS 9/X, Linux (only 32 bit x86), Solaris, HP-UX, Pocket PC, OS/2, QNX, Symbian, Palm OS, BeOS, and IRIX). A notable exception is support for 64-bit operating systems (see criticism). For compatibility with devices (embedded systems), see Macromedia Flash Lite.
UIRA was a free software project that intended to become a complete replacement for Adobe Flash. The project collapsed in mid 2007, though people are now discussing reviving or continuing it.
Macromedia made the Flash Files specifications for versions 6 and later available only under a non-disclosure agreement, but it is widely available from various sites.
In April 2006, the Flash SWF file format specification was released with details on the then newest version format (Flash 8). Although still lacking specific information on the incorporated video compression formats (On2, Sorenson Spark, etc.), this new documentation covered all the new features offered in Flash v8 including new ActionScript commands, expressive filter controls, and so on. The file format specification document is offered only to developers who agree to a license agreement that permits them to use the specifications only to develop programs that can export to the Flash file format. The license forbids the use of the specifications to create programs that can be used for playback of Flash files. The Flash 9 specification was made available under similar restrictions.
In May 2008, Adobe launched the Open Screen Project (Adobe link), which made the SWF specification available without restrictions.
There is, as of late 2007, no complete free software replacement which offers all the functionality of the latest version of Adobe Flash Player.
Gnash is an active project that aims to create a free player and browser plugin for the Adobe Flash file format and so provide a free alternative to the Adobe Flash Player under the GNU General Public License. Despite potential patent worries because of the proprietary nature of the files involved, Gnash supports most SWF v7 features and some SWF v8 and v9. Gnash runs on Windows, Linux and other operating systems on 32-bit, 64-bit and other architectures.
Swfdec is another open-source flash player available for Linux and FreeBSD. See also SWFOpener.
Many shareware developers produced Flash creation tools and sold them for under US$50 between 2000 and 2002. In 2003 competition and the emergence of free Flash creation tools had driven many third-party Flash-creation tool-makers out of the market, allowing the remaining developers to raise their prices, although many of the products still cost less than US$100 and support ActionScript. As for open source tools, KToon can edit vectors and generate SWF, but its interface is very different from Macromedia's. Another, more recent example of a Flash creation tool is SWiSH Max made by an ex-employee of Macromedia. Toon Boom Technologies also sells traditional animation tool, based on Flash - Toon-Army.
Other tools are focussed on creating specific types of Flash content. Anime Studio is a 2D animation software specialised for character animation which creates SWF files. Express Animator is similarly aimed specifically at animators. Question Writer publishes its quizzes to Flash file format.
Users that are not programmers or web designers will also find on-line tools that allow them to build full Flash-based web sites. One of the oldest services available (1998) is FlashToGo Such companies provide a wide variety of pre-built models (templates) associated to a Content Management System that empowers users to easily build, edit and publish their web sites.
Adobe wrote a software package called Adobe LiveMotion, designed to create interactive animation content and export it to a variety of formats, including SWF. LiveMotion went through two major releases, but failed to gain any notable user base.
In February 2003, Macromedia purchased Presedia, which had developed a Flash authoring tool that automatically converted PowerPoint Files into Flash. Macromedia subsequently released the new product as Breeze, which included many new enhancements. In addition, (as of version 2) Apple's Keynote presentation software also allows users to create interactive presentations and export to SWF.
| Ext. | Explanation |
|---|---|
| .swf | .swf files are completed, compiled and published files that cannot be edited with Adobe Flash. However, many '.swf decompilers' do exist. Attempting to import .swf files using Flash allows it to retrieve some assets from the .swf, but not all. |
| .fla | .fla files contain source material for the Flash application. Flash authoring software can edit FLA files and compile them into .swf files. |
| .xfl | .xfl files are XML-based project files that are equivalent to the binary .fla format. Flash authoring software will use XFL as an exchange format in Flash CS4. It will import XFL files that are exported from InDesign and AfterEffects. |
| .as | .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. They sometimes use the extension .actionscript |
| .swd | .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 | .asc files contain Server-Side ActionScript, which is used to develop efficient and flexible client-server Macromedia Flash Communication Server MX applications. |
| .flv | .flv files are Flash video files, as created by Adobe Flash, ffmpeg, Sorenson Squeeze, or On2 Flix. |
| .f4v | .f4v files are standard mp4 files that can be played back by Flash Player 9 Update 3 and above. |
| .f4p | .f4p files are mp4 files with digital rights management. |
| .f4a | .f4a files are mp4 files that contain only audio streams. |
| .f4b | .f4b files are mp4 audio book files. |
| .swc | .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 | .jsfl files are used to add functionality in the Flash Authoring environment; they contain Javascript code and access the Flash Javascript API. |
| .swt | .swt files are 'templatized' forms of .swf files, used by Macromedia Generator |
| .flp | .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 | .spl files are FutureSplash documents. |
| .aso | .aso files are 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 SettingsApplication DataMacromediaFlash8enConfigurationClassesaso on Win32 / Flash8. |
| .lmv | These files are created by the freeware program called liveswif.They are used to save the animation in an editable file , but can also be converted into an .swf file to produce online content for the web. This file has nothing to do with adobe flash Fla file , with the only similarity being that they both hold editable data that can be converted into a swf file. |
Indeed, Adobe Flash Player has not always had good performance on all platforms (see criticism), and it is still not uncommon for other multimedia players to play fine where Flash Player drops frames and skips audio.
On August 20, 2007, Adobe announced on its blog that with Update 3 of the Flash Player, Flash Video will also support the MPEG-4 international standard. Specifically, Flash Player will have support for video compressed in H.264 (MPEG-4 Part 10), audio compressed using AAC (MPEG-4 Part 3), the MP4, M4V, M4A, 3GP and MOV multimedia container formats (MPEG-4 Part 14), 3GPP Timed Text specification (MPEG-4 Part 17) which is a standardized subtitle format and partial parsing support for the 'ilst' atom which is the ID3 equivalent iTunes uses to store metadata. Adobe also announced that they will be gradually moving away from the proprietary FLV format to the standard MP4 format owing to functional limits with the FLV structure when streaming H.264. The final release of the Flash Player supporting MPEG-4 had become available in Fall 2007.
Criticisms of Adobe Flash have included questions of its usability, the problems Flash-laden pages cause for those with disabilities, security issues, limited platform compatibility, performance and compatibility issues on certain platforms, the inability for search engines to index data contained in Flash binary data, and its use as a means to restrict access to content and the implementation of Digital Rights Management.
There are as well privacy concerns in connection with Local Shared Object (LSO), also known as flash cookies.
Most web browsers now have popular extensions that prevent immediate Flash playback, and allow the user to either ignore the Flash on a web page, or to play it by clicking on it. The extensions for Firefox and Opera are both named Flashblock, although the plug-ins were written by different developers. The extension for Internet Explorer is Foxie, and contains a number of IE features, one of which is also named Flashblock.