From Citizendium - Reading time: 8 min
Adobe Flash, a package of multimedia authoring software developed by Adobe Systems (formerly by Macromedia), is used to create vector graphics-based animation programs, rich content, user interfaces and web applications, and combine videos with web pages.
Adobe Flash is written in C++, and contains ActionScript to build most user interface elements, such as buttons, text fields, and drop down menus. Such elements also can be specified using XML. In order to view standalone Adobe Flash multimedia files (SWF) and interact with Flash contents, users need to download and install Adobe Flash Player, which is a client runtime available for many platforms such as Windows, Linux, Solaris and Macintosh.
Flash program was built by Jonathan Gay, who began his professional Programming life as a Macintosh software engineer early in high school. After years of game design, he focused on building graphics editors and started FutureWave Software company with Charlie Jackson in 1993. In order to make drawing on the computer easier than drawing on paper, they built software called SmartSketch.
As a competitor of Illustrator and FreeHand, SmartSketch didn't gain success until 1995, it was turned into an animation product FutureSplash Animator for people sending graphics and animation over Internet. The ancestor of Flash Player was also born at that time.
In August of 1996, FutureSplash got big support from Microsoft and Disney Online. Microsoft used FutureSplash on MSN to create the most TV-like experience on the Internet. And Disney Online adopted FutureSplash to build animation and the user interface for the Disney Daily Blast.
In December 1996, FutureWave Software was sold to Macromedia, and FutureSplash Animator became Macromedia Flash 1.0. Since then, Flash becomes synonymous with animation on the Internet.[1]
| Product Name | Released Year |
|---|---|
| FutureSplash Animator | 1996 |
| Macromedia Flash 1 | 1996 |
| Macromedia Flash 2 | 1997 |
| Macromedia Flash 3 | 1998 |
| Macromedia Flash 4 | 1999 |
| Macromedia Flash 5 | 2000 |
| Macromedia Flash MX (version 6) | 2002 |
| Macromedia Flash MX 2004 (version 7) | 2003 |
| Macromedia Flash Basic 8 | 2005 |
| Macromedia Flash Professional 8 | 2005 |
| Adobe Flash CS3 Professional | 2007 |
| Product Name | Released Year |
|---|---|
| Macromedia Flash 2 | 1997 |
| Macromedia Flash 3 | 1998 |
| Macromedia Flash 4 | 1999 |
| Macromedia Flash 5 | 2001 |
| Macromedia Flash MX | 2002 |
| Macromedia Flash MX 2004 | 2003 |
| Macromedia Flash 8 | 2005 |
| Adobe Flash 9 for Windows and Macintosh | 2006 |
| Adobe Flash 9 for Linux | 2007 |
| Adobe Flash CS3 | 2007 |
| Adobe Flash Player 10 | 2008 |
Flash doesn't usually comply with W3C standards perfectly. Although there is a way to use the <object> tag to insert Flash files into web pages, the more commonly used <embed> is a proprietary tag which is not recognized by the W3C.
In the Draft Recommendation for HTML 5, the W3C has a section named "Relationship to XUL, Flash, Silverlight, and other proprietary UI languages", which says, "This specification is independent of the various proprietary UI languages that various vendors provide. As an open, vendor-neutral language, HTML provides for a solution to the same problems without the risk of vendor lock-in." [2]
Flash is not based on an open standard such as SVG. Also, Adobe's Flash Player cannot ship as part of a pure open source or completely free operating system because its distribution is bound to the Macromedia Licensing Program and subject to approval. Currently, there are some third party tools which can be used to generate SWF files. IrfanView can play SWF files, and other open-source flash players such as Gnash and Swfdec are in development.
The main features of latest Adobe Flash are as follows: [3]
The main features of current Adobe Flash Player are as follows: [4]
An animation consists of a series of frames. Each frame represents a single static image. When they are shown in sequence, it looks like the object in the picture is moving. Here is an example of how a simple animation can be made:
First, create a new FLA file and make two layers containing the following pictures.
![]() Made by Ganggang Hu, 2008 |
![]() Made by Ganggang Hu, 2008 |
Second, set the 10th frame as the keyframe for the first layer and the 20th frame as the keyframe for the second layer.
Finally, export, save as a SWF file, and display the animation.
|
Made by Ganggang Hu, 2008 |
For maximum compatibility with different web browsers, the following XHTML code can be used to embed Flash on a web page:
<object width="425" height="344"> <param name="movie" value="http://www.youtube.com/v/hE1K0ZeTtAw&hl=en&fs=1"/> <param name="allowFullScreen" value="true"/> <embed src="http://www.youtube.com/v/hE1K0ZeTtAw&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"/> </object>
Alternatively, for full compliance with the W3C's XHTML standard, the following code can be used:
<object type="application/x-shockwave-flash"
data="http://www.youtube.com/v/hE1K0ZeTtAw&hl=en&fs=1"
width="400" height="300">
<param name="movie"
value="http://www.youtube.com/v/hE1K0ZeTtAw&hl=en&fs=1" />
</object>
Flash technology can be used on CD-ROMs and TV, but its main usage is on websites. Due to the Flash Player's wide distribution and its availability for many operating systems and web browsers, Flash is increasingly used as a way to display advertisements, animations, and video clips on websites. Flash is used as the basis for many popular video sites such as YouTube, Google Video, and Hulu.
The Flash Player is available for many platforms and devices, such as Windows, Mac OS, Linux (only 32-bit x86), Solaris, HP-UX, Pocket PC, OS/2, QNX, Symbian, Palm OS, BeOS, and IRIX.
According to a survey by Adobe, "Adobe Flash Player is used by over 2 million professionals and reaching 99.0% of Internet-enabled desktops in mature markets as well as a wide range of devices."[5]
| Product name | Percentage of web users(%) |
|---|---|
| Adobe Flash Player | 99.0 |
| Java | 85.1 |
| Microsoft Windows Media Player | 79.3 |
| Apple QuickTime Player | 65.5 |
| Adobe Shockwave Player | 59.2 |
| RealOne Player | 46.2 |
| SVG | 7.9 |
Worldwide distribution of Flash Player — June 2008
| Flash Player 7 | Flash Player 8 | Flash Player 9 | Flash Player 9.0.115 | |
|---|---|---|---|---|
| Mature Markets | 99.0% | 98.7% | 97.7% | 81.7% |
| US/Canada | 99.1% | 98.9% | 97.8% | 83.3% |
| Europe | 98.5% | 97.9% | 96.5% | 78.6% |
| Japan | 99.3% | 99.3% | 98.8% | 81.3% |
| Emerging Markets | 97.3% | 97.1% | 96.2% | 82.4% |
Worldwide distribution of Adobe Flash Player by Version — June 2008
Flash has wide interaction with other software, such as Empressr, which is an Ajax/Flash-based web application for creating, sharing and storing presentations online, and Goowy, which offers Flash email service for instant messaging and chatting.
Flash can communicate with JavaScript and VBScript, which enables a HTML page to send and receive data from a Flash movie.
Extending ActionScript3 with C within Flash enables the translation from C/C++ code to ActionScript code by the process of C/C++ -->AS3 -->SWF -->Flash, which makes a contribution to the game development.
Also, Flash animations can be imported into VB6, C++, C# .NET by using the Flash player as a component in the project. The Flash Remoting MX provides the connection between Flash and the web application server to create Rich Internet Applications. Users can integrate rich Flash content with applications built using ColdFusion MX, Microsoft .NET, Java, and SOAP-based web services. Flash Remoting MX can parse and translate ActionScript XML objects on the server into an org.w3c.xml DOM, making any remote service (such as CFCs, pagers, EJBs, Java classes, and Microsoft .NET DLLs) that accepts or returns XML documents seamlessly accessible to Flash. Developers who use SOAP for custom XML documents can expose them to Flash clients in a simple model, eliminating the development of server-side parsing previously required when passing an XML stream from Flash. [6]
With the fast development of internet, there are many alternative technologies competing with Flash to enrich the web page, such as Sun Microsystems Applet, Microsoft Silverlight and Sun Microsystems javaFX.
Java applets can be executed by browsers for many platforms, and will cache in most web browsers. However, it requires the Java plug-in, which isn't available by default on all web browsers. Also, Java applet may cost large amounts of startup time when first time it is used.
JavaFX is a client technology for creating rich Internet applications (RIAs) with immersive media and content to enable consistent user experiences on desktop, mobile, TV, and other consumer platforms. But JavaFX is still in development, so there are not that much components available yet.
Microsoft Silverlight is viewed as the biggest competitor to Flash, some people even claim that Flash is dead and Silverlight is the next generation. But since Silverlight is a relative new technology (born in 2007), it may take a period of time to rule the market.
Adobe AIR is a cross-operating system runtime being developed by Adobe since November 2007 that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy rich Internet applications (RIAs) to the desktop.[7]
As of February 2008, Adobe Systems is working on a research project to make programs written in various languages easier to run on Adobe's ubiquitous Flash Player client runtime. This technology would allow for cross-compiling existing code from C, C++, Java, Python, and Ruby to ActionScript. So these languages can cross-compile to the virtual machine inside Flash and AIR (Adobe Integrated Runtime). For example, an alternative PDF renderer providing a lighter version of PDF could be cross-compiled, and the Flash Player could read it and display PDFs.[8]
Another project is called Open Screen Project, which is dedicated to driving rich Internet experiences and creating a consistent application interface across all devices like personal computers, mobile devices or consumer electronics. This project includes abolishing licensing fees for Adobe Flash Player and Adobe Integrated Runtime, removing restrictions on the use of the Shockwave Flash (SWF) and Flash Video (FLV) file formats, publishing Application Programming Interfaces for porting Flash to new devices, and publishing Flash Cast protocol and Action Message Format (AMF) to let Flash applications receive information from remote databases.[9]
The next version of Flash will have two additional components designed for large scale implementation. Adobe is adding in the option to require an advertisement to be played in full before the main video piece is played, and gives companies the option to link an advertisement with content and make sure that both are played and that they not be changed, which would bring advantages to large scale video sites.[10]