From Wikipedia, the free encyclopedia - View original article
|Developer(s)||Adobe Systems, formerly Macromedia|
|Type||Rich Internet application|
|Developer(s)||Adobe Systems, formerly Macromedia|
|Type||Rich Internet application|
Adobe Flash (formerly called "Macromedia Flash") is a multimedia and software platform used for creating vector graphics, animation, games and rich Internet applications (RIAs) that can be viewed, played and executed in Adobe Flash Player. Flash is frequently used to add streamed video or audio players, advertisement and interactive multimedia content to web pages, although usage of Flash on websites is declining.
Adobe Flash Player makes the Flash content accessible on various computer systems and devices and is available free of charge for common web browsers (as a plug-in) under a few of the major operating systems, some smartphones and tablets, and a few other electronic devices using Flash Lite.
Flash originated with the application SmartSketch, developed by Jonathan Gay. It was published by FutureWave Software, which was founded by Charlie Jackson. SmartSketch was a drawing application for pen computers running the PenPoint OS. When PenPoint failed in the marketplace, SmartSketch was ported to Microsoft Windows and Mac OS. As the Internet became more popular, FutureWave added cell animation editing to the vector drawing capabilities of SmartSketch and released FutureSplash Animator on multiple platforms. FutureWave approached Adobe Systems with an offer to sell them FutureSplash in 1995, but Adobe turned them down at that time. FutureSplash was used by Microsoft in its early work with the Internet (MSN), and also by Disney Online for their subscription-based service Disney's Daily Blast. In 1996, FutureSplash was acquired by Macromedia and released as Flash. Flash is currently developed and distributed by Adobe Systems, as the result of its 2005 purchase of Macromedia.
On May 1, 2008, Adobe announced the Open Screen Project, with the intent of providing a consistent application interface across devices such as personal computers, mobile devices, and consumer electronics. When the project was announced, seven goals were outlined: the abolition of licensing fees for Adobe Flash Player and Adobe Integrated Runtime, the removal of restrictions on the use of the Shockwave Flash (SWF) and Flash Video (FLV) file formats, the publishing of application programming interfaces for porting Flash to new devices, and the publishing of The Flash Cast protocol and Action Message Format (AMF), which let Flash applications receive information from remote databases.
As of February 2009[update], the specifications removing the restrictions on the use of SWF and FLV/F4V specs have been published. The Flash Cast protocol—now known as the Mobile Content Delivery Protocol—and AMF protocols have also been made available, with AMF available as an open source implementation, BlazeDS. Work on the device porting layers is in the early stages. Adobe intends to remove the licensing fees for Flash Player and Adobe Integrated Runtime (AIR) for devices at their release for the Open Screen Project.
As of 2012[update], the Open Screen Project is no longer accepting new applications according to partner BSQuare. However paid licensing is still an option for device makers who want to use Adobe software.
Flash Player for smart phones was made available to handset manufacturers at the end of 2009.
Adobe stops supporting Flash Player for mobile device browsers after the release of 11.1. It continues to support deploying Flash based content as mobile applications via Adobe AIR.
Furthermore, in November 2011 Adobe announced the end of Flash for mobile platforms or TV, instead focusing on HTML5 for browser content and Adobe AIR for the various mobile application stores. Pundits questioned its continued relevance even on the desktop and described it as "the beginning of the end". BlackBerry LTD (formerly known as RIM) announced that it would continue to develop Flash for the PlayBook.
Adobe Flash Player's planned discontinuation as a separately available NPAPI browser plugin for Linux (see Availability on desktop operating systems), although technically just an API change, is notable in this context because availability of new Flash Players on Linux will be restricted to one browser.
Adobe Flash continues to be a favored animation program for low-cost 2D television and commercial animation, in competition with Toon Boom Animation. Notable users of the software include DHX Media Vancouver for productions including Pound Puppies and My Little Pony: Friendship is Magic, Nelvana for 6teen and Clone High, Williams Street for Metalocalypse and Squidbillies, and Nickelodeon Animation Studios for Wow! Wow! Wubbzy! El Tigre: The Adventures of Manny Rivera, Danny Phantom and Happy Tree Friends. Flash is less commonly used for feature-length animated films; however, 2009's The Secret of Kells, an Irish film, was animated primarily in Adobe Flash, and was nominated for an Academy Award for Best Animated Feature at the 82nd Academy Awards.
Flash files are in the SWF format, traditionally called "ShockWave Flash" movies, "Flash movies", or "Flash applications", usually have a .swf file extension, and may be used in the form of a web page plug-in, strictly "played" in a standalone Flash Player, or incorporated into a self-executing Projector movie (with the .exe extension in Microsoft Windows). Flash Video files[spec 1] 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.
The use of vector graphics combined with program code allows Flash files to be smaller—and thus allows 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, with 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 JPEG, Progressive JPEG, PNG, and GIF capability. In the next version, Flash is slated to use a just-in-time compiler for the ActionScript engine.
Virtually all browser plugins for video are free of charge and cross-platform, including Adobe's offering of Flash Video, which was first introduced with Flash version 6. Flash Video has been a popular choice for websites due to the large installed user base and programmability of Flash. In 2010, Apple publicly criticized Adobe Flash, including its implementation of video playback for not taking advantage of hardware acceleration, one reason Flash is not to be found on Apple's mobile devices. Soon after Apple's criticism, Adobe demoed and released a beta version of Flash 10.1, which takes advantage of GPU hardware acceleration even on a Mac. Flash 10.2 beta, released December 2010, adds hardware acceleration for the whole video rendering pipeline.
Flash Audio is most commonly encoded in MP3 or AAC (Advanced Audio Coding) however it can also use ADPCM, Nellymoser (Nellymoser Asao Codec) and Speex audio codecs. Flash allows sample rates of 11, 22 and 44.1 kHz. It cannot have 48 kHz audio sample rate, which is the standard TV and DVD sample rate.
On August 20, 2007, Adobe announced on its blog that with Update 3 of Flash Player 9, Flash Video will also implement some parts of the MPEG-4 international standards. Specifically, Flash Player will work with video compressed in H.264 (MPEG-4 Part 10), audio compressed using AAC (MPEG-4 Part 3), the F4V, MP4 (MPEG-4 Part 14), M4V, M4A, 3GP and MOV multimedia container formats, 3GPP Timed Text specification (MPEG-4 Part 17), which is a standardized subtitle format and partial parsing capability for the 'ilst' atom, which is the ID3 equivalent iTunes uses to store metadata. MPEG-4 Part 2 and H.263 will not work in F4V file format. Adobe also announced that it will be gradually moving away from the FLV format to the standard ISO base media file format (MPEG-4 Part 12) owing to functional limits with the FLV structure when streaming H.264. The final release of the Flash Player implementing some parts of MPEG-4 standards had become available in Fall 2007.
Adobe Flash Player 10.1 does not have acoustic echo cancellation, unlike the VoIP offerings of Skype and Google Voice, making this and earlier versions of Flash less suitable for group calling or meetings. Flash Player 10.3 Beta incorporates acoustic echo cancellation.
The reliance on Adobe for decoding Flash makes its use on the World Wide Web a concern for advocates of open standards and free software — the completeness of its public specifications are debated, and no complete implementation of Flash is publicly available in source code form with a license that permits reuse. Generally, public specifications are what makes a format re-implementable (see future proofing data storage), and reusable codebases can be ported to new platforms without the endorsement of the format creator.
Adobe's restrictions on the use of the SWF/FLV specifications were lifted in February 2009 (see Adobe's Open Screen Project). However, despite efforts of projects like Gnash, Swfdec and Lightspark, a complete free Flash player is yet to be seen, as of September 2011. For example, Gnash cannot use SWF v10 yet. Notably, Gnash has been a long standing high priority project of the Free Software Foundation, since at least 2007 and it was ranked number one in September 2011.
Notable advocates of free software, open standards, and the World Wide Web have warned against the use of Flash:
Companies building websites should beware of proprietary rich-media technologies like Adobe's Flash and Microsoft's Silverlight. (...) You're producing content for your users and there's someone in the middle deciding whether users should see your content.
Representing open standards, inventor of CSS and co-author of HTML5, Håkon Wium Lie explained in a Google tech talk of 2007, entitled "the <video> element", the proposal of Theora as the format for HTML5 video:
I believe very strongly, that we need to agree on some kind of baseline video format if [the video element] is going to succeed. Flash is today the baseline format on the web. The problem with Flash is that it's not an open standard.
In October 1998, Macromedia disclosed the Flash Version 3 Specification 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. In February 1999, MorphInk 99 was introduced, 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.
Macromedia made the Flash Files specifications for versions 6 and later available only under a non-disclosure agreement, but they are 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 June 2009, Adobe launched the Open Screen Project (Adobe link), which made the SWF specification available without restrictions. Previously, developers could not use the specification for making SWF-compatible players, but only for making SWF-exporting authoring software. The specification still omits information on codecs such as Sorenson Spark, however.[dead link]
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.
Open source projects like Ajax Animator aim to create a Flash development environment, complete with a graphical user environment. Alternatively, programs such as Vectorian Giotto, swfmill, SWFTools, and MTASC provide tools to create SWF files, but do so by compiling text, ActionScript or XML files into Flash animations. It is also possible to create SWF files programmatically using the Ming library, which has interfaces for C, PHP, C++, Perl, Python, and Ruby. Haxe is an open source, high-level object-oriented programming language geared towards web-content creation that can compile Flash files.
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 work with 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 a traditional animation tool, based on Flash.
In addition, several programs create .swf-compliant files as output from their programs. Among the best-known of these is Screencast, which leverages the ability to do lossless compression and playback of captured screen content to produce demos, tutorials, or software simulations of programs. These programs are typically designed for use by non-programmers, and create Flash content quickly and easily, but cannot actually edit the underlying Flash code (i.e. the tweening and transforms, etc.). Screencam is perhaps the oldest screencasting authoring tool to adopt Flash as the preferred output format, having been developed since the mid-90s. The fact that screencasting programs have adopted Flash as the preferred output is testament to Flash's presence as a ubiquitous cross-platform animation file format.
Other tools focus on creating specific types of Flash content. GoAnimate is a cloud-based platform for creating and distributing high-quality animated videos. Anime Studio is a 2D animation software package specialized for character animation that creates SWF files. Express Animator is similarly aimed specifically at animators. Question Writer publishes its quizzes to Flash file format.
Users who are not programmers or web designers will also find on-line tools that allow them to build full Flash-based websites. 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 websites. Other sites, that allows greater customization and design flexibility are Wix.com and CirclePad.
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.
As of May 2011, users of computers with the PowerPC G5 processor are not able to view Flash content from some sites (e.g. Facebook) that requires the latest upgrade of Adobe Flash player, which is not compatible with this processor architecture.
In February 2012, Adobe announced the discontinuation of its NPAPI Flash plugin for Linux from version 11.2. Newer versions will not be available from Adobe, but integrated with Google Chrome, using its PPAPI instead. Security updates for the NPAPI version will still be provided for 5 years.
Since version 11 of Adobe Flash Player, released October 4, 2011, 64-bit and 32-bit builds for Windows, Mac and Linux have been released in sync. Previously, Adobe offered experimental 64-bit builds of Flash Player for Linux, from November 11, 2008 to June 15, 2010.
Adobe Flash Player exists for a variety of mobile operating systems, including Android (since version 2.2), Pocket PC/Windows CE, QNX (e.g. on BlackBerry PlayBook), Symbian, Palm OS, and webOS (since version 2.0).
In November 2011, however, Adobe announced the withdrawal of support for Flash on mobile devices. Adobe is reaffirming its commitment to "aggressively contribute" to HTML5.
There is no Adobe Flash Player for iOS devices (iPhone, iPad and iPod Touch). The iPhone accounts for more than 60% of US and Canadian smartphone web traffic. However, Flash content can be made to run on iOS devices in a variety of ways:
Using Flash tends to break conventions associated with normal HTML pages. Selecting text, scrolling, form control and right-clicking act differently from with a regular HTML webpage. Many such interface unexpectancies are fixable by the designer. Usability expert Jakob Nielsen published an Alertbox in 2000 entitled, Flash: 99% Bad, which listed issues like these. Some problems have been at least partially fixed since Nielsen's complaints:
Any Flash player must be able to animate on top of video renderings, necessitating an intermediate color space conversion between video decoding and presentation, that a traditional multimedia player would leave for hardware to do at a later stage. This intermediate step splits the hardware acceleration pipeline in two. Depending on the hardware acceleration APIs exposed by the operating system, doing either part separately in hardware may be unsupported or complicated. For example, on Linux, native Xv video scaling can not be used because it is made to take video in the form that comes from the decoder – in YUV color space. However, Adobe Flash Player is able to make use of VDPAU for decoding (provided that the computer has an Nvidia GPU), making the Linux client partially hardware accelerated. The same challenge arises with native video capability in the browser, however the implementor may choose a different compromise between features and performance. For example, the KHTML layout engine does use Xv, and so cannot draw on top of the video. Rather than displaying its video controls on top of the video, the video scaling is reduced to fit them below.
Flash Player build 22.214.171.124 for Linux has introduced a video rendering bug with Nvidia hardware acceleration, resulting in discoloured Flash videos. This bug is caused by the red palette being rendered as blue. The problem has been confined to Flash Player and remains unfixed as of April 2012. A workaround has been implemented in VDPAU.
In tests done by Ars Technica in 2008 and 2009, Adobe Flash Player performed better on Windows than Mac OS X and Linux with the same hardware. Performance has later improved for the latter two, on Mac OS X with Flash Player 10.1, and on Linux with Flash Player 11.
Flash content is usually embedded using the
embed HTML element. A web browser that does not fully implement one of these elements displays the replacement text, if supplied by the web page. Often, a plugin is required for the browser to fully implement these elements, though some users cannot or will not install it.
Since Flash can be used to produce content (such as advertisements) that some users find obnoxious or take a large amount of bandwidth to download, some web browsers default to not play Flash content before the user clicks on it, e.g. Konqueror, K-Meleon.
Most current browsers have a feature to block plugins, playing one only when the user clicks it. Opera versions since 10.5 feature native Flash blocking. Opera Turbo requires the user to click to play Flash content, and the browser also allows the user to enable this option permanently. Both Chrome and Firefox have an option to enable "click to play plugins". Equivalent "Flash blocker" extensions also exist for many popular browsers: Firefox has Flashblock and NoScript, Internet Explorer has Foxie, which contains a number of features, one of them named Flashblock. WebKit-based browsers under Mac OS X, such as Apple's Safari, have ClickToFlash.
Adobe Flash Player 10.3 introduced a Local Settings Manager that can be accessed from the Microsoft Windows Control Panel or the OS X System Preferences panel. This panel superseded the previous Global Online Settings Manager. The Privacy Settings panel allows users to specify whether websites must ask their permission before using the web camera or microphone. This was apparently part of a fix for vulnerabilities that enabled the use of Flash for spying via web camera.
Intego's Year In Mac Security report states that in 2011, the Flashback trojan surfaced targeting Mac OS X users, which first masqueraded as a Flash Player installer. Intego later recommended that Adobe users get trusted updates "only directly from the vendor that publishes them."
Implementational vulnerabilities are flaws in the specific player software, rather than inherent to the Flash format or its usage. In particular, this section's listing of flaws in Adobe's Flash player can not be expected to apply to other players, and vice versa.
Adobe Flash Player's security record has caused several security experts to recommend against installing the player, or to block Flash content: the US-CERT recommends to block Flash using NoScript, and Charlie Miller recommended "not to install Flash" at the computer security conference CanSecWest. As of July 7, 2013, Adobe Flash Player has almost 300 CVE entries, of which 234 were leading to arbitrary code execution. Security vulnerabilities in Adobe Flash Player account for a third of all vulnerabilities reported in Adobe products.
Security experts have predicted that with the rise of HTML5, the Flash plugin may become obsolete. The Sophos Security Threat Report 2013 states that "fortunately, the need for browser plugins such as Flash is diminishing". McAfee's report on 2013 Threats Predictions concurs and predicts that threats will shift towards browsers.
Like the HTTP cookie, a flash cookie (also known as a “Local Shared Object”) can be used to save application data. Flash cookies are not shared across domains. An August 2009 study by the Ashkan Soltani and a team of researchers at UC Berkeley found that 50% of websites using Flash were also employing flash cookies, yet privacy policies rarely disclosed them, and user controls for privacy preferences were lacking. Most browsers' cache and history suppress or delete functions did not affect Flash Player's writing Local Shared Objects to its own cache in version 10.2 and earlier, at which point the user community was much less aware of the existence and function of Flash cookies than HTTP cookies. Thus, users with those versions, having deleted HTTP cookies and purged browser history files and caches, may believe that they have purged all tracking data from their computers when in fact Flash browsing history remains. Adobe's own Flash Website Storage Settings panel, a submenu of Adobe's Flash Settings Manager web application, and other editors and toolkits can manage settings for and delete Flash Local Shared Objects.
On Windows systems, LSOs are stored in the directory: "%appdata%\Macromedia\Flash Player" Deleting the contents of this directory should remove the LSOs (flash cookies) for the current user.
Swfdec is a free/open source replacement of Adobe Flash Player. It is compatible with Linux and FreeBSD and is distributed under the terms of the GNU Lesser General Public License (LGPL). It was released on November 11, 2008 .
Swfdec is a library that can be used to play Flash files. There is a standalone player and a Mozilla plugin that uses the library. Swfdec supports Flash through version 4, and most features of Flash through version 9. The player was routinely updated to support the latest features demanded by video players, resulting in most (including YouTube, Google Video, Lulu.tv, AOL video, and CNN video) working at any given time.
Swfdec has been chosen as the Flash player for Fedora, and it has been ported to DirectFB for embedded use alongside its X11 and GTK+ bindings. It uses the Cairo graphics library for rendering, GStreamer for decoding audio and video and PulseAudio, OSS, or ALSA for audio playback.
Development of Swfdec has almost stopped. As of December 2012 the most recent commit to the git repository was in December 2009.
Gnash is an active project that aims to create a software player and browser plugin replacement for the Adobe Flash Player. Despite potential patent worries because of the proprietary nature of the files involved, Gnash provides most SWFv7 features but does not fully support SWF v7, SWF v8-files, or the '9'th generation. Gnash runs on Windows, Linux and other platforms for the 32-bit, 64-bit, and other operating systems.
Scaleform GFx is a commercial alternative Flash player that features full hardware acceleration using the GPU and has high conformance with both Flash 10 ActionScript 3 and Flash 8 AS2. Scaleform GFx is a game development middleware solution that helps create graphical user interfaces or HUDs within 3D video games.
HTML5 is often cited as an alternative to Adobe Flash technology usage on web pages. Adobe released a tool that converts Flash to HTML5, and Google also released an experimental tool that does the same.
Commercial software packages that can create SWF files include Toon Boom, Xara Photo & Graphic Designer, Vectorian Giotto, CelAction2D, Toufee, KoolMoves, Express Animator, Alligator Flash Designer, Amara Web and Anime Studio. These applications provide additional capabilities for creating cartoons, especially with tools more tailored to traditionally trained animators, as well as additional rigging for characters, which can speed up character animation considerably. Additionally, there are programs available which translate 3D information into 2D vectors for display in Flash Player.
Several third-party tools are able to use and generate SWF files, and some tools such as IrfanView are capable of rendering SWF files, through the use of Flash Player. 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 proposition first from Adobe. There is no complete free and open source software replacement which offers all the functionality of the latest version of Adobe Flash Player.
swfc is an open-source ActionScript 3.0 compiler which generates SWF files from script files, which includes SVG tags. It is currently the most complete alternative for building Flash content in Linux, despite being entirely script-based and not having a GUI.
The Flash 4 Linux project was an initiative to develop an open source Linux application as an alternative to Adobe Flash Professional. Development plans included authoring capacity for 2D animation, and tweening, as well as outputing SWF file formats. F4L evolved into an editor that was capable of authoring 2D animation and publishing of SWF files. Flash 4 Linux was renamed UIRA. UIRA intended to combine the resources and knowledge of the F4L project and the Qflash project, both of which were Open Source applications that provided (to some extent) an alternative to the proprietary Adobe Flash. UIRA was free software, but was never truly completed. It reached a stage of being no more than a shell of a UI with limited functionality. Due in part to the adoption of the DADVSI law in France, the UIRA project was shut down in January 2008, according to the project's page in SourceForge.