From Wikipedia, the free encyclopedia
Adobe Flash (formerly Macromedia Flash; originally FutureSplash Animator), or simply Flash, refers to both the Adobe Flash Player and to a multimedia authoring program used to create content for the Adobe Engagement Platform (such as web applications, games and movies). The Flash Player, developed and distributed by Adobe Systems (which acquired Macromedia in 2005), is a client application available in most dominant web browsers. It features support for vector and raster graphics, a scripting language called ActionScript and bi-directional streaming of audio and video.
Strictly speaking, Adobe Flash is an integrated development environment (IDE) while Flash Player is a virtual machine used to run, or parse, the Flash files. But in contemporary colloquial terms "Flash" can refer to the authoring environment, the player, or the application files.
Since its introduction in 1996, Flash technology has become a popular method for adding animation and interactivity to web pages; several software products, systems, and devices are able to create or display Flash. Flash is commonly used to create animation, advertisements, various web-page components, to integrate video into web pages, and more recently, to develop rich Internet applications.
The Flash files, traditionally called "Flash movies" or "Flash games", 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.
- In January of 1993, Charlie Jackson, Jonathan Gay, and Michelle Welsh started a small Software company called FutureWave and created their first product SmartSketch. A drawing application, SmartSketch was designed to make creating computer graphics as simple as drawing on paper. Although SmartSketch was an innovative drawing application, it didn't gain enough of a foothold in its market.
- As the internet began to thrive, FutureWave began to realize the potential for a vector-based web animation tool that might easily challenge Macromedia's often slow-to-download 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, an artist Adam Grofcsik ,and a PR specialist Ralph Mittman.
- In December 1996, Macromedia acquired the vector-based animation software and later released it as Flash 1.0.
- Macromedia Flash 2 was released in 1997 with features such as support of stereo sound and enhanced bitmap integration.
- Initially, the Flash Player plug-in was not bundled with popular web browsers and users had to visit Macromedia website to download it, but as of year 2000, the Flash Player was already being distributed with all AOL, Netscape and Internet Explorer browsers. Two years later it shipped with all releases of Windows XP.
- Macromedia Generator was the first initiative from Macromedia to separate design from content in Flash files. Generator 2.0 was released in April 2000 and featured real-time server-side generation of Flash content in its Enterprise Edition. Generator was discontinued in 2002 in favor of new technologies such as Flash Remoting, which allows for seamless transmission of data between the server and the client, and ColdFusion Server.
- In October 2000, usability guru Jakob Nielsen wrote a polemic article regarding usability of Flash content entitled "Flash 99% Bad". (Macromedia later hired Nielsen to help them improve Flash usability.)
- In September 2001, a survey made for Macromedia by Media Metrix showed that out of the 10 biggest web sites in the United States, 7 were making use of Flash content.
- On March 15, 2002, Macromedia announced the availability of Macromedia Flash MX and Macromedia Flash Player 6, with support for video, application components, and accessibility.
- Flash MX 2004 was released in September 2003, with features such as faster runtime performance up to 8 times with the enhanced compiler and the new Macromedia Flash Player 7, ability to create charts, graphs and additional text effects with the new support for extensions (sold separately), high fidelity import of PDF and Adobe Illustrator 10 files, mobile and device development and a forms-based development environment.
- On December 3, 2005, Adobe Systems acquired Macromedia and its product portfolio (including Flash).
Initially focused on animation, early versions of Flash content offered few interactivity features and thus had very limited scripting capability.
New versions of the Flash Player and authoring tool have strived to improve on scripting capabilities. Flash MX 2004 introduced ActionScript 2.0, a scripting programming language more suited to the development of Flash applications. As seen in the image to the right, it's often possible to save a lot of time by scripting something rather than animating it, which usually also retains a higher level of editability.
Of late, the Flash libraries are being used with the XML capabilities of the browser to render rich content in the browser. Since Flash provides more comprehensive support for vector graphics than the browser and because it provides a scripting language geared towards interactive animations, it is being considered a viable addition to the capabilities of a browser. This technology, which is currently in its nascent stage, is known as Asynchronous Flash and XML, much like AJAX, but with possibly greater potential.
Many times, Flash authors will decide that while they desire the advantages that Flash affords them in the areas of animation and interactivity, they do not wish to expose their images and/or code to the world. However, once a .swf file is saved locally, it may then quite easily be decompiled into its source code and assets. Some decompilers are capable of nearly full reconstruction of the original source file, down to the actual code that was used during creation.
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.
Format and plug-in
Compared to other plug-ins such as Java, Acrobat Reader, QuickTime or Windows Media Player, the Flash Player has a small install size 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 xSWF, like so:
<object data="movie.swf" type="application/x-shockwave-flash" width="500" height="500"> <param name="movie" value="movie.swf"/></object>
SMIL is a W3C Recommendation that provides some of the same capabilities as Flash.
The use of vector graphics (like PostScript, SVG and PDF)—especially when combined with program code—allows Flash files to translate to small file sizes which take less bandwidth to transmit than bitmaps or video clips do. In many cases, Flash is a very attractive solution for delivering mixed content. If the content is purely one format (such as text, video or audio), other alternatives may provide better outcome. Also, depending on the type of application or animation created (in particular, transparency or large screen updates as in photographic or text fades) a Flash movie may need more CPU power than alternatives.
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.
Flash as a format has become very widespread on the desktop market. According to a NPD study, 98% of US Web users have the Flash Player installed, with 45%-56% (depending on region) having the latest version. Numbers vary depending on the detection scheme and research demographics.
Flash players exist for a wide variety of different systems and devices. Flash content can run consistently on Microsoft Windows, Mac OS, and Linux (Macromedia has created or licensed players for the following operating systems: Windows, Mac OS 9/X, Solaris, HP-UX, Pocket PC, OS/2, QNX, Symbian, Palm OS, BeOS and IRIX). See also Macromedia Flash Lite for Flash compatibility on other devices.
Flash Player 8 was never released for Linux, Adobe stating they would skip that version and instead focus on preparing Flash Player 9, to be launched some time after the Windows and Mac OS X versions. This decision led to disappointment in the Linux community, with some people feeling that Adobe has abandoned the Linux market. Increasingly, websites insist on the use of newer players, which weakens Adobe's claim that their Flash Player is "Linux compatible." Linux users seeking to upgrade to Flash Player 8 are instead redirected to a download page for Flash Player 7. The October 2006 release of a beta version, available for download from Adobe Labs, has served to ameliorate this situation somewhat.
Adobe offers the specifications of the Flash file format (excluding specifications of related formats such as AMF) 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.
Since Flash files do not depend on a truly open standard such as SVG, this reduces the incentive for non-commercial software to support the format, although there are several third party tools which use and generate the SWF file format and a large and vibrant open source community. Apparently, the Flash Player cannot ship as part of a pure open source, or completely free operating system, as its distribution is bound to the Macromedia Licensing Program and subject to approval.
Free software alternatives
There is, as of late 2006, no complete free software replacement which offers all the functionality of the latest version of Adobe Flash. Gnash, based on GameSWF, is a Flash player replacement that is under development and has the support of Free Software Foundation (FSF). Gnash supports Flash 7 and below, but not files that require version 8 or 9 features.
A full end-to-end implementation of the W3C SVG specification would offer close competition for most of the features of Flash in an open, standard way. Adobe used to develop and distribute the 'Adobe SVG Viewer' client plug-in for MS Internet Explorer, but has recently announced its discontinuation. It has been noted by industry commentators that this is probably no coincidence at a time when Adobe have moved from competing with Macromedia's Flash, to owning the technology itself. Meanwhile, Firefox's built-in support for SVG continues to grow.
In October 1998, Macromedia disclosed the Flash Version 3 Specification to the world on its website. It did this in response to many new and often semi-open formats competing with SWF, such as Xara's Flare and Sharp's Extended Vector Animation formats. Several developers quickly created a C library for producing SWF. February 1999 saw the launch of MorphInk 99, the first third party program to create SWF files. Macromedia also hired Middlesoft to create a freely-available developers' kit for the SWF file format versions 3 to 5.
Today, several open and free libraries and tool sets exist to generate and manipulate SWF files on many platforms. These include the Ming library, SWFTools and the combination of swfmill and MTASC.
Macromedia has 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.
Many shareware developers produced Flash creation tools and sold them for under $50 USD between 2000 and 2002. In 2003 competition and the emergence of free Flash creation tools, most notably OpenOffice.org, 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 $100 USD 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.
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. Since that time, Macromedia has seen competing PowerPoint-to-Flash authoring tools from PointeCast (not to be confused with PointCast) and PresentationPro among others. In addition, (as of version 2) Apple's Keynote presentation software also allows users to create interactive presentations and export to SWF.
In April of 2006, the Macromedia 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 covers all the new features offered in Flash v8 including new ActionScript commands, expressive filter controls, and so on. The file format specification document is typically obtainable by subscribing to Macromedia's membership system and license restrictions (which include a prohibition against using these specifications to develop a free alternative).
Due to the increase in the use of Flash in aggressive—and many argue intrusive—online advertising, tools have emerged that restrict Flash content in some or all web sites by temporarily or permanently turning Flash Player off depending on user requirements. Examples of such tools are Flashblock and Adblock for the Mozilla Firefox browser, both of which are commonly used in conjunction with each other to allow users to control what Flash content they see.
Many web sites rely on Flash being available by default on a user's web browser and will not check to see if it is available. If Flash is not used, users may be unable to access some Flash-dependent websites or site features. Another thing sites like this are dependent on is a fast connection. While it isn't impossible to see Flash-based sites with a slower form of internet, such as dial-up, or a slow form of DSL, it may be frustrating for the user. Tools such as Flashblock do alert the end user to the fact that Flash content is present on the site, allowing the user to view it if they wish.
Using Flash content stores the content of the web page in a binary file and the sections are not static like a web page. Thus, Flash-based content is not easily suitable for indexing by search engines. However, this problem can be alleviated with correct web design.
Like most new technologies that are easy to learn, Flash has often been misused in a way that lacks customer focus. Flash, particularly in its early days, was used to create unusable and inaccessible sites. In recent years the Flash usage has matured and the quality is much higher.
Local Shared Objects
Flash Players from version 6 can store and retrieve persistent data without offering any visible signs to the user. This behavior enables web designers to create privacy issues similar to those of cookies. It is possible to clear the temporary files that Flash stores on your computer either through the Flash website, or by clearing the files manually. The default storage location for LSOs is operating-system dependent. For Windows XP, the location is within each user's Application Data directory, under Macromedia\Flash Player\#SharedObjects. Additional information is available at the Electronic Privacy Information Center's Local Shared Objects — "Flash Cookies" page.
Specially crafted files have been shown to cause Flash applications to malfunction, by allowing the execution of malevolent code. The Flash Player has a long history of security flaws that expose computers to remote attacks. However, exploitation of these flaws has remained at the proof-of-concept stage and has not escalated into a real-world problem.
In addition to entries in the Open Source Vulnerability Database, security advisories published in August 2002, December 2002, and November 2005 highlight three examples of reports about various Flash Player versions that allowed remote code execution.
Internet users who are visually-impaired, and who may rely on a screen reader, braille display or using larger text sizes and/or high-contrast colour schemes may find sites that make extensive use of Flash difficult or impossible to use. While later versions (Flash Player 6 and onwards) support accessibility functions, site designers may not necessarily design the Flash content with these considerations in mind.
Flash Player on various platforms
The Adobe flash player is mainly optimized for the Windows 32 bit platform. There is a 32 bit version for Mac OS X; under Linux, version 7 and a beta of version 9 are both available. Adobe has been criticized for neglecting to optimize its products on non-Microsoft platforms. This has led to poor web surfing performance on Macintosh and Linux computers, since many websites use Flash animations for menus and advertisements.
Adobe has rewritten the bitmap drawing routines in Flash Player 8 for Mac, using OpenGL planes via Quartz to draw the surfaces. The new drawing code is reported to be actually faster than its Windows counterpart, where JPEG, TIFF or other bitmap images are composited into the animation.
Flash Player 8 was not released for Linux; instead, Adobe is preparing to officially release Flash Player 9 for Linux. The current (October 2006) Flash Player 7 for Linux has poor sound support (the sound may lag about a second behind the picture); this issue is reportedly resolved in the Flash Player 9 beta now available from Adobe Labs. Adobe have not yet released any of their development software for any UNIX-like operating system except Mac OS X.
Although Windows, Linux and Mac have extensive 64 bit support, Adobe has yet (as of October 2006) to release a Flash Player for the x86-64 architecture on any operating system.
"Click to activate and use this control"
As of April 11, 2006 (assuming all relevant patches from Microsoft have been applied), any file embedded using the default object/embed code and viewed in Microsoft Internet Explorer will prompt users to "click to activate and use this control", before it will run. This is due to a patent dispute between the University of California, Eolas, and Microsoft that has concluded by finding against Microsoft and awarding damages of $521 million against the company.
In an interview with eWeek, Eolas founder Michael Doyle said, "We have from the beginning had a general policy of providing non-commercial users royalty-free licenses … the open-source community shouldn't have anything to fear from us", so most other browsers should not be forced to follow suit.
The dispute was over the whole concept of embedded, interactive ActiveX controls in IE, using the
object and similar HTML elements, which Michael Doyle patented for UC in 1993, then licensed exclusively to a company he founded (Eolas) in 1994. There are potential workarounds for IE users, but implementing them will mean code alterations to countless web pages that currently make use of Flash and other embedded ActiveX applications.
Adobe claims Flash reaches 97.3% of desktop Internet users. Independent market share data is not available because the several companies who periodically gather browser usage data (see Usage share of web browsers) do not measure Flash penetration. Analyzing website logs, one developer in 2002 estimated 90% of Internet Explorer users and 71% of all users had Flash installed, though the latter figure included automated bots.
Developers considering Flash must keep in mind that any such estimates relate to the general population, and should take into account the characteristics of the particular user category their website targets.
Related file formats and extensions
Flash-specific file formats
Generic file formats used by Flash
Product history (Authoring Tool)
- FutureSplash Animator (Spring 10 April 1996) - initial version of Flash with basic editing tools and a timeline
- Flash 1 (December 1996) - a Macromedia re-branded version of the FutureSplash Animator
- Flash 2 (June 1997) - Released with Flash Player 2, new features included: the object library
- Flash 4 (15 June 1999) - Released with Flash Player 4, new features included: internal variables, an input field, advanced Actionscript, and streaming MP3
- Flash MX (ver 6) (15 March 2002) - Released with Flash Player 6, new features included: a video codec (Sorenson Spark), Unicode, v1 UI Components, compression, ActionScript vector drawing API
- Flash MX 2004 (ver 7) (9 September 2003) - Released with Flash Player 7, new features included: Actionscript 2.0 (which enabled an object-oriented programming model for Flash), behaviors, extensibility layer (JSAPI), alias text support, timeline effects
- Flash MX Professional 2004 (ver 7) (9 September 2003) - Released with Flash Player 7, new features included all Flash MX 2004 features plus: Screens (forms for non-linear state-based development and slides for organizing content in a linear slide format like PowerPoint), web services integration, video import wizard, Media Playback components (which encapsulate a complete MP3 and/or FLV player in a component that may be placed in a SWF), Data components (DataSet, XMLConnector, WebServicesConnector, XUpdateResolver, etc) and data binding APIs, the Project Panel, v2 UI components, and Transition class libraries.
- Flash Basic 8 (released on September 13, 2005) - A less feature-rich version of the Flash authoring tool targeted at new users who only want to do basic drawing, animation and interactivity. Released with Flash Player 8, this version of the product has very limited support for video and advanced graphical and animation effects.
- Flash Professional 8 (released on September 13, 2005) - Released with the Flash Player 8, Flash Professional 8 added features focused on expressiveness, quality, video, and mobile authoring. New features included Filters and blend modes, easing control for animation, enhanced stroke properties (caps and joins), object-based drawing mode, run-time bitmap caching, FlashType advanced anti-aliasing for text, On2 VP6 advanced video codec, support for alpha transparency in video, a stand-alone encoder and advanced video importer, cue point support in FLV files, an advanced video playback component, and an interactive mobile device emulator.
- Flash Basic 9 & Flash Professional 9 (to be released 2007)
Adobe Labs (Previously Macromedia labs) is a source for early looks at emerging products and technologies from Adobe-Macromedia, including downloads of the latest software and plugins. Flash 9, Flex 2, and ActionScript 3.0 are discussed.
The code name for the next release of the Flash authoring tool, ver 9.0, is "BLAZE" as explained in this post in Flash Product Manager Mike Downey's weblog. This next release is expected to focus on designer/developer workflow and integration with other Adobe Systems creative suite products. The new version of Flash will be known as Adobe Flash after the recent acquisition of Macromedia.
A project currently in development at Adobe Labs is the Apollo 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). While features of Apollo are still being fully defined, the project aims to be made available in public beta form in early 2007, with final release planned for later that year.
- Adobe Systems
- Adobe Flex
- Adobe Flash Lite
- Adobe Flash Remoting
- FutureSplash Animator
- Adobe Flash Player
- Flash animation
- Flash satay
- Rich Internet application
- Streaming media
- 2D Animation software
- ^ Adobe Completes Acquisition of Macromedia
- ^ a b Flash Player Statistics
- ^ Adobe Flash Player Version Penetration
- ^ Adobe to Discontinue Adobe SVG Viewer
- ^ SVG.org > First Firefox 2.0 Beta Released
- ^ Skills for Access : How To : Provide text equivalents for graphics : in Flash
- ^ Improving Flash Playback In Mac OS X
- ^ The Accidental Switcher
- ^ Emmy Huang:Flash Player 8.5 beta to be renamed Flash Player 9
- ^ UC, Eolas win verdict against Microsoft in Web browser case
- ^ IE patent endgame detailed
- ^ Eolas Founder: Browser Victory Shouldn't Alter HTML
- ^ U.S. Patent Office reaffirms University’s Web-browser technology patent
- ^ Percentage of Flash Users (Percentage of Browsers with Flash Plug-in) - Documents - Andy Jeffries
- Adobe Flash Player