Macromedia Flash

From Free net encyclopedia

(Redirected from Shockwave Flash)

Template:Infobox Software Macromedia Flash, or simply Flash, refers to both the Macromedia Flash Player and to a multimedia authoring program used to create content for it as well as games or movies created using the program. The Flash Player, developed and distributed by Adobe Systems (formerly by Macromedia), is a client application available in most dominant web browsers. It features support for vector and raster graphics, a scripting language called ActionScript and bidirectional streaming of audio and video.

Strictly speaking, Macromedia Flash is the integrated development environment (IDE) and Flash Player is the virtual machine used to run the Flash files, but in colloquial language these have become mixed: "Flash" can mean either 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 animations and advertisements; to design web-page elements; to add video to web sites; and, more recently, to develop Rich Internet Applications.

The Flash files, traditionally called "flash movies", usually have a .swf file extension and may appear as an element of a web page or to be "played" in the standalone Flash Player.

Contents

History

  • In December 1996, Macromedia acquired a vector-based animation software called FutureSplash 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.
  • In October 2000, usability guru Jakob Nielsen wrote a polemic article regarding usability of Flash content entitled "Flash 99% Bad".
  • 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.
  • 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 and ColdFusion Server.
  • 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). [1]

Programming Language

Image:OSX10-2-actionscript2.png Template:Main

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, a scripting language which has syntax similar to JavaScript, but a much different programming framework and set of class libraries. ActionScript is used to create almost all of the interactivity (buttons, text entry fields, pick lists) seen in many Flash applications.

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 capabilites 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 higher potential.

Content Protection

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. 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.

Security

User Privacy Compromised via Local Shared Objects (LSOs)

Macromedia claims that Flash MX Players use a sandbox security model, but, contrary to that definition, Flash MX Players (that is, Flash Players subsequent to Version 5) do not seek the user's permission to store on his hard disk so-called Local Shared Objects (LSOs), which constitute a collection of cookie-like data that may include not only user-tracking information but any personal data that the user has entered in any Flash-enabled application, whether it be stand-alone or Web-based. LSOs — an automatic, invisible opt-in for anyone installing a Flash MX Player — are not temporary files, and there is, deliberately as designed by Macromedia, no obvious control panel to opt out of them; instead, the user who wishes to maintain his privacy must discover on his own their presence, and then find the Macromedia Web-site page ([2]) whose links activate the Flash MX Player plug-in and then expose the hidden, Flash-based LSO-opt-out control panel. Versions of the Flash Player prior to those that handle Flash MX content did not use these silently invasive, privacy-threatening LSOs.

There are already reports of LSO exploitation by advertisers: Flash Player Worries Privacy Advocates (InternetWeek). Most users, including those familiar with Flash who protect themselves from cookies, are unaware of this kind of tracking, which is not curtailed by customary in-browser cookie settings and most cookie-cleaning utilities: Company Bypasses Cookie-Deleting Consumers (InformationWeek).

To this day, there is little public awareness of Macromedia's hidden, proprietary-cookie LSOs, and no widespread, well-known utility-suite, anti-spyware, or anti-adware programs that address them. Users who delete traditional cookies with such programs may find those cookies resurrected because of Macromedia's LSOs: Tool Can Resurrect Deleted Cookies (Out-Law.com). Since LSOs, unlike traditional cookies, have no expiration dates, the information resurrected in those cookies may persist indefinitely.

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.

User PCs Compromised via Flash Players

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. Security advisories published in August 2002, December 2002, and November 2005 are just three examples of reports about various Flash Player versions that allowed the takeover of a victim's PC, whether the viewed Flash SWF file had been embedded in a Web page, sent in an e-mail, or downloaded by the user.

Competition

Format and plug-in

Compared to other plugins such as Java, Acrobat Reader, QuickTime or Windows Media Player, the Flash Player has very small install size and fast initialization time. However, detecting and embedding Flash Player in (X)HTML is not W3C compliant (External links:Flash W3C valid).

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 VP6 and Sorenson Spark, and run-time support for JPEG, Progressive JPEG, PNG, and GIF. Since 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 NPD study, 98% of Web users have the Flash Player installed [3], with 45%-56%[4] (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, Linux (i386 only) and various other Unix systems (Macromedia has created or licensed players for the following operating systems: GNU/Linux x86, Windows, Mac OS 9/X, Solaris, HP-UX, Pocket PC, OS/2, Symbian, Palm OS, BeOS and IRIX). Olivier Debon has written an open source version of the Flash 3 player[5]; ports of this exist to numerous operating systems, including the Amiga. See also Macromedia Flash Lite for Flash compatibility on other devices.

Macromedia has released the specifications of the Flash file format (excluding specifications of related formats such as AMF), and compatible third-party tools exist. However, Macromedia retains control of the format. 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 utilize 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.

Authoring

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 non-Macromedia or 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. Many open and free libraries based on the information released to the public in 1998, and from later study of the SWF file format, such as the Ming library, exist to produce SWF files on many platforms. Macromedia has made the Flash Files specifications for versions 6 and later available only as a PDF under a non-disclosure agreement, but 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, Flash4linux has started to develop a SWF authoring tool including an interface similar to that of Macromedia's. 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. Adobe cancelled it in 2003. Also more recently, Adobe bought Macromedia Corporation and now owns Flash.

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 Articulate, PointeCast (not to be confused with PointCast), and PresentationPro. In addition, (as of version 2) Apple's Keynote presentation software also allows users to create interactive presentations and export to SWF.

In November 2003 Microsoft announced that it had started working on a competing product, now called Microsoft Expression Interactive Designer, whose release would coincide with that of their next-generation Windows operating system, Windows Vista. Although the target audiences of Expression Interaction Designer and Flash overlap somewhat, Microsoft is targeting its product on creating user interfaces for Windows Presentation Foundation programs, while Flash focuses on user interfaces that run on many platforms, primarily over the web.

Criticisms

Probably due to wide usage of Flash in web advertisements, tools have emerged for blocking Flash content in some or all web sites, or temporarily or permanently turning Flash Player off, such as FlashBlock and Adblock for the Mozilla Firefox browser.

Many web sites rely on Flash being available by default on your browser and will not check if you have disabled it. You may be unable to access a particular website if you disable Flash, or you may experience a degraded user interface.

Using Flash content stores the content of the web page in a binary file. Since Flash uses animations, the design of the page is not static. Both these things make Flash pages unsuitable for indexing by search engines.

'Misuse' of Flash software has led to the creation of a new industry term "Flashterbation", where the technology is used in a way that lacks customer focus.

Flash Player on various platforms

The Macromedia flash player is mainly optimised for the Windows 32 bit platform. There are 32 bit versions for Mac OS X and Linux, but Macromedia has been criticized for neglecting to optimize its products on these platforms. This has led to poor web surfing performance on Macintosh and Linux computers, since many websites use Flash animations for menus and advertisements. [6] [7]

Macromedia 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 in some cases, where JPEG, TIFF or other bitmap images are composited into the animation.

A similar solution for Linux using the X Window System might be slightly more tricky to achieve due to some old weaknesses of the X Window System. However, work is being done in the open source community to rewrite [8] the X Window System to integrate OpenGL, enhance font support among other things. This will make it easier to make multimedia programs (such as flash) exploit the capabilities of the graphics card.

Flash Player 8 will not be released for the Linux platform [9]. Macromedia is planning to release the 8.5 version for all the three major operating systems, but not necessarily at the same time. The current (March 2006) Flash Player 7 for Linux has poor sound support (The sound may lag about a second behind the picture). Macromedia has not yet released any of their development software for any UNIX-like operating system except Mac OS X.

Although Linux and Mac have excellent 64 bit support, Macromedia has yet (April 2006) to release a flash player for the x86-64 platform, at least for Mac/Linux.

"Click to activate and use this control"

As of April 11, 2006, any Flash 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[10] that has concluded by finding against Microsoft and awarding damages of $521 million against the company[11].

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"[12], 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 UC patented in 1993, and licenced exclusively to Eolas in 1994[13]. 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.

Apart from Eolas' stated immunity for the 'open-source community', due to various reasons including Microsoft's own patents, other browsers like Firefox etc, do not use ActiveX technology at all.

Related file formats and extensions

Flash specific file formats

.swf .swf files are completed, compiled and published files that cannot be edited with Macromedia Flash. However, many '.swf decompilers' do exist.
.fla .fla files contain source material for the Flash application. Flash authoring software can edit FLA files and compile them into .swf files. Proprietary to Macromedia, the FLA format in no sense counts as "open".
.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 Macromedia Flash, Sorenson Squeeze, or On2 Flix.
.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 for added functionality in Flash; they contain Javascript code for extendability of the Javascript API.
.swt .swt files are 'templatized' forms of .swf files, used by Macromedia Generator
.flp .flp files are renamed XML files, used to reference all the document files contained in the Flash Project. Flash Projects allow the user to group multiple, related files together to create complex, interlinked, applications.
.spl .spl files are FutureSplash documents.

Generic file formats used by Flash

.avi AVI file is a video file, standing for Audio Video Interleave. Flash includes some compression codecs, including some from Radius.
.gif Animated GIF picture.
.png .png files are Portable Network Graphics files that remain editable (with all its layers) after being saved
.ssk .ssk files are SmartSketch drawings.
.piv .piv files are Pivot StickFigure Animations.
.3ds Some third-party software converts animated 3D file formats, notably the common 3D Studio Max format, to SWF files as rendered vector animations.

</center>

Product history (Authoring Tool)

Image:Macromedia Flash MX 2004.png

  • FuturePecoraro Animator (1995) - precursor to Flash named for the software's first true user
  • FutureSplash Animator (Spring 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 3 (31 May 1998) - Released with Flash Player 3, new features included: the movieclip element, JavaScript plug-in integration, transparency and an external stand alone player
  • Flash 4 (15 June 1999) - Released with Flash Player 4, new features included: internal variables, an input field, advanced Actionscript, and streaming MP3
  • Flash 5 (24 August 2000) - Released with Flash Player 5, new features included: ActionScript 1.0 (based on ECMAScript, making it very similar to JavaScript in syntax), Smartclips (the precursor to components in Flash), HTML text formatting added for dynamic text
  • Flash MX (ver 6) (15 March 2002) - Released with Flash Player 6, new features included: a video codec (Sorenson Spark), Unicode, v1 UI Components, XML support, compression
  • 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.

Future developments

Macromedia Labs is a source for early looks at emerging products and technologies from Macromedia, including downloads of the latest software and plugins. Flash Player 8.5, 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 creative suite products. The new version of Flash will be known as Adobe Flash after the recent acquisition of Macromedia.

See also

External links

Template:MacromediaStudioar:ماكرو ميديا فلاش zh-min-nan:Macromedia Flash da:Macromedia Flash de:Macromedia Flash es:Macromedia Flash fr:Macromedia Flash id:Macromedia Flash it:Macromedia Flash he:מקרומדיה פלאש hu:SWF nl:Macromedia Flash ja:Macromedia Flash pl:Macromedia Flash pt:Macromedia Flash ru:Flash fi:Flash sv:Macromedia Flash th:แมโครมีเดีย แฟลช vi:Macromedia Flash zh:Flash