SWF (Adobe Flash)
Adobe Flash, or simply Flash, refers to both the Adobe Flash Player,
and to the Adobe Flash Professional multimedia authoring program.
Adobe Flash Professional 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). The Flash
Player, developed and distributed by Adobe Systems (which acquired
Macromedia in a merger that was finalized in December 2005), is a
client application available in most common web browsers. It
features support for vector and raster graphics, a scripting
language called ActionScript and bi-directional streaming of audio
and video. There are also versions of the Flash Player for mobile
phones and other non-PC devices.
Strictly speaking, Adobe Flash Professional 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 with the
.exe extension in Windows. Flash Video files have a .FLV file
extension and are utilized from within .swf files.
|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
(a variation on ECMA), 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 striven to
improve on scripting capabilities. Flash MX 2004 introduced
ActionScript 2.0, a scripting programming language more suited to
the development of Flash applications. 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 an .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.
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 version 9 are both available. On other platforms, such
as Solaris, there are currently no later releases than version 7.
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. Flash Player 7
for Linux was very CPU hungry in fullscreen mode, resulting in low
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 7 for Linux had poor sound support (the sound could lag
about a second behind the picture); this issue is reportedly
resolved in Flash Player 9. Flash Player 8 was never released for
Linux, Adobe stated that they would skip that version and instead
focus on preparing Flash Player 9. This decision led to
disappointment in the Linux community, with some people feeling that
Adobe had abandoned the Linux market. Flash Player 9 for Linux was
released in January 2007, providing platform parity once again. This
version only supports the Advanced Linux Sound Architecture. In
order to get sound output, users of the Open Sound System must
either compile and install the abstraction layer flashsupport
provided by Adobe, run the Windows Flash Player in a Windows browser
through WINE, or alternatively switch to ALSA, which involves
upgrading the kernel and possibly the sound card.
Adobe has yet (as of April 2007) to release a Flash Player for the
x86-64 architecture on any operating system. There is to date no
Linux Flash Player for non-x86 compatible processors (e.g. x86-64
native, PowerPC, ARM, etc.). Adobe employees have said the Flash
implementation is very 32-bit specific and porting to 64-bit systems
would require a lot of effort. Adobe is currently
working on a 64-bit version. Adobe have not yet released any of
their development software for any UNIX-like operating system except
Mac OS X.