PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The reader
is available for free
download.
Archived Report
Flash Development
Copyright 2016, Faulkner Information Services. All Rights Reserved.
D5cid: 00021144
Publication Date: 1612
Report Type: TUTORIAL
Preview
Adobe Flash was long the de-facto standard
for Web site interactivity, however, it has been steadily
falling from favor in recent years due to Adobe’s seeming inability to eradicate
its many security flaws. Used for everything from simple animated banners to
something as complex as Adobe’s own Web conferencing product, it offers a
powerful way to develop rich Internet applications. Flash is often misused by
developers, however, who mistake glitz for functionality, and its ongoing
security issues have given it a bad name among security professionals.
It is slowly but surely being replaced by HTML5.
Report Contents:
Executive Summary
[return to top of this report]
Adobe Flash shifted from a mere Web page enhancer to a full-fledged
development platform over the years.
Related Faulkner Reports |
Objective-C Programming Tutorial |
Since Adobe’s acquisition of Macromedia, which originally developed Flash, it
has spent a lot of effort expanding the role of the product. Now not only are
Web sites entirely based on it, products such as Adobe’s Web conferencing
product, Adobe Connect, use Flash for their functionality.
However, it is often misused by developers who create, as Shakespeare said,
"sound and fury signifying nothing." The excitement of its possibilities trump
common sense, creating components that are slow to load, distracting, and
annoying to users. In addition, persistent ongoing security issues have given
Flash a bad name among security professionals, who see it as a hole through
which hackers can attack. This is leading to a decline in
usage, driven by the industry’s move to replace Flash with HTML5.
Description
[return to top of this report]
Macromedia Flash began life as a way to provide animation and interactivity
on Web pages. Now
it is the foundation for an entire platform, including the following products:
- Adobe Access – A content protection and monetization
solution that lets companies control and bill for Flash content. - Flash Builder 4.7 – Formerly Adobe Flex
Builder, this is the platform that lets developers build cross-platform
solutions using the open source Flex framework. - Flash Media Live Encoder – A media encoder that streams
audio and video in real time to Flash Media Server software or Flash Video
Streaming Service (FVSS). - Flash Media Playback – A free, standard media
player for the Adobe Flash Platform. It can be used by any Website with only
a few lines of HTML, enabling playback of video and other media. - Adobe Flash Player – The player component that is
typically run as a browser plug-in, it is the component users think of when
they hear "Flash." - Animate CC – The authoring tool with which
to build interactive Web sites and Web applications, formerly known as Flash Professional CS6. Flash Builder is used
to create and edit ActionScript code. In early 2016, it was renamed and
repurposed as Adobe Animate CC, and although continuing to support Flash,
supports other formats such as HTML5. Older versions of Flash
Professional will continue to be available. - Adobe Scout – A lightweight SWF profiling tool for
Flash game developers. - Flash Remoting MX – Provides the connection between
Flash and Web application servers to allow developers to integrate Flash
content with applications built using ColdFusion MX, Microsoft .NET, Java,
and SOAP-based Web services.
Most of these components are also available by subscription in Adobe’s
Creative Cloud. In addition, the Flash Video Streaming
Service is offered by hosting partners to enable content delivery.
ActionScript is a scripting language used in Flash development. It was originally designed for controlling
simple 2D vector animations in Flash. The current version, ActionScript 3.0,
however, is a full-fledged object-oriented programming language suitable for
building complex Flash applications. It is the foundation of the Flex 2 API.
Third parties such as SapphireSteel Software, with its Amethyst 2 IDE for
Visual Studio 2010, 2012, and 2013, and the open source FlashDevelop.org have also created
tools to assist in Flash development.
Current View
[return to top of this report]
Flash development has come a long way from the original animated banners
on Web pages. Now entire applications are built using Flash. For example,
Adobe’s Web conferencing product, Adobe Connect, is Flash-based, as are the Hulu video streaming service
and Google Maps Streetview. And the tools have matured as
applications became more complex.
While page banners are still a large part of Flash usage, more
sophisticated applications are making major inroads. However, with this
expansion of scope comes additional risk. Flash has suffered from multiple
security vulnerabilities which often went unpatched, not because Adobe
hadn’t produced a fix, but because updating had been manual and
relied on the user being aware that there was a patch available. However,
vendors (including Adobe) finally recognized that this is a critical problem
and took steps to mitigate it. For example, Mozilla now
alerts users of the Firefox browser when they need to update Flash, and
Adobe auto-updates Flash when the user’s computer starts up or when
users open a browser. Microsoft even includes Flash updates in its
Windows Updates for Windows 8.1 and above.
Flash applications are stored in SWF format, which consists of small
files that are well suited for Internet transfer. To keep them small,
graphics are represented as mathematical formulas instead of data; these are
known as vector graphics. To build a Flash application, the developer
creates vector graphics and design elements, then imports audio, video and
images, and defines how the elements are to be used. Artwork or other
content can be re-used by converting it to a construct called a symbol.
ActionScript is the tool used to insert logic; it is the scripting
language used to control playback of SWFs at runtime in Flash Player.
ActionScript is used to make applications play dynamically in a nonlinear
way, and to add interesting or complicated functionality that cannot be
added using the Timeline.
Adobe Animate CC (formerly Flash Professional) components are building blocks for creating rich
interactive applications on the Web. By providing complex pieces that behave
in a consistent way and are ready to use and customize, components
significantly reduce the time and effort needed to develop applications from
scratch.
For example, rather than creating a custom button, combo box, list, or
video player, the developer can simply drag a component from the Components
panel into a document during authoring. The developer can then easily
customize the look and feel of these components to suit the application
design. Components share runtime libraries; once one component has been used
in an application, adding another one does not greatly impact the size of
the SWF file at runtime.
Each component includes an ActionScript application programming interface
(API) that allows developers to customize it at runtime. The API allows them
to handle events that occur when a user interacts with a component or when
something significant happens to it. The API also enables the developer to
set properties and call methods and to apply styles and skins to customize a
component’s appearance.
Several versions of ActionScript exist:
- ActionScript 3 (the most recent version) executes extremely fast and
is fully compliant with the ECMAScript specification. It offers better
XML processing, an improved event model, and an improved architecture
for working with onscreen elements. FLA files that use ActionScript 3
cannot include earlier versions of ActionScript. - ActionScript 2 is older and simpler to learn than ActionScript 3.
Although Flash Player runs compiled ActionScript 2 code slower than
compiled ActionScript 3 code, ActionScript 2 is still useful for many
kinds of projects that are not computationally intensive—such as
design-oriented content. - ActionScript 1 is the simplest form of ActionScript, and is still
used by some versions of the Flash Lite player. ActionScript 1 and 2 can
coexist in the same FLA file. - Flash Lite 2 and Flash Lite 1 were subsets of the corresponding
version of ActionScript that are supported on mobile phones and devices.
Adobe ceased development of mobile Flash
after the release of Flash Player 11.1 for Android and BlackBerry
PlayBook. Instead, it works with Flash developers to pair native
apps with Adobe AIR.
Outlook
[return to top of this report]
Good design is imperative if a site is to be effective. Some
developers use Flash just to add glitz, without adding functionality. This
is not a new problem; the Nielsen
Norman Group noted in 2002 "The usability requirements for applications on
the Web are much stricter than they ever were for traditional software
development. We estimate that companies can double the return on their investment in Flash applications if they
improve the quality of the user experience and overcome the usability
problems we have identified."1
That still holds true
today. Problems are still showing up on Websites today that were on the list in
the 2002 report.
Design notwithstanding, other industry factors are influencing the future of
Flash, and it is not bright. Already, W3Techs surveys have
shown a decline in its use, from 16 percent of websites in January 2014 to
12.2 percent in early December 2014. It has further fallen to 9.6 percent in
December 2015, and to 7.4 percent in December 2016. HTML5, not Flash, is considered the future of the Web by many.
It was completed
in fall of 2014 according to its designer, the Web Hypertext Application Technology Working
Group (WHATWG), but components have been in use for many years. There was some support for HTML5 in Internet Explorer 8,
and Microsoft increased its footprint in Internet Explorer 9. Today, Internet
Explorer 10 and 11, and Microsoft Edge, as well as other popular Web browsers, such as Google’s
Chrome and Mozilla’s Firefox, rely on HTML5. In fact, as
of early 2017, Microsoft will be blocking Flash by default in Edge, save for
the most popular Flash-based sites (it plans to shrink that list over time,
so ultimately no Flash will be run by default), Google is no longer enabling
Flash in its Chrome browser, and Firefox will implement click to activate.
An independent group has even created a movement called Occupy Flash to
encourage migration away from Flash.
Even now that HTML5 is completed, there may still be a place for Flash in the
enterprise according to a 2010 Gartner
post. Analyst Ray Valdes notes, "Your
applications might require extensive offline processing, direct manipulation
of graphics, real-time notifications and alerts, high-speed binary
communication protocols, tight integration with local devices, and so on. In
these scenarios, you might need to use Flash, Silverlight or Java (the exact
choice would depend on your context, such as your development team, your IT
landscape, your vendor relationships, and so on)."2
However, most Flash will be ultimately replaced by
HTML5, and enterprise developers should acknowledge this
and update their skills, and their applications, accordingly.
Recommendations
[return to top of this report]
Enterprises that wish to develop Flash applications, or even just to enhance
their Web pages with some Flash interactivity, should
probably rethink. Due to its
persistent security issues, the industry is driving Flash
out in favor of HTML5. Even
Adobe has recommended that developers use HTML5, and has updated and
rebranded the Flash Professional development tool to Animate CC, although
the product does still support Flash.
Best practices still apply, however, regardless of the
technology in use. When building interactivity, developers should control their desires to create overly complex and
distracting components, and concentrate on usability. Good design
principles are as important here as in any other form of software
development.
For example, corporate sites should make sparing use of sound and music,
and provide an obvious and simple way to mute audio output; viewers may be
in locations where noise is a distraction. Gratuitous motion and fading may
also detract from the usability of the application. Fonts should be large
enough to read, with sufficient contrast between background and text that
they’re readable. Links should look as though they’re links. And, possibly
most important, developers should create components that load quickly and
are respectful of user bandwidth. Finally, design and code with security in
mind.
HTML5 is definitely the future. While Flash likely
won’t disappear completely in the near future, thanks to the volume of
applications and sites that still need conversion,
it shouldn’t be considered for ongoing development.
References
- 1 "Usability of Rich Internet Applications and Web-Based Tools."
Nielsen Norman Group. 2002. http://www.nngroup.com/reports/flash/ - 2 Ray Valdes, "HTML5 and the Future of Adobe Flash." Gartner.
February 2010.
http://blogs.gartner.com/ray_valdes/2010/02/10/html5-and-flash/
Web Links
[return to top of this report]
- ActionScript.org:
http://www.actionscript.org/ - Adobe Flash Developer Center:
http://www.adobe.com/devnet/flash.html - FlashDevelop:
http://www.flashdevelop.org/wikidocs/index.php - Flash Kit:
http://www.flashkit.com - Occupy Flash Movement:
http://www.occupyflash.org - OWASP Flash Security Project:
http://www.owasp.org/index.php/Category:OWASP_Flash_Security_Project - SapphireSteel Software:
http://sapphiresteel.com/Products/amethyst-ide/article/amethyst-2-product-page.html - Swftools.com: http://www.swftools.com/
- W3Techs:
http://w3techs.com/technologies/details/cp-flash/all/all
About the Author
[return to top of this report]
Lynn Greiner is Vice President, Technical Services
for a division of a multi-national corporation, and also an award-winning
computer industry journalist. Ms. Greiner is a regular contributor to
Faulkner Information Services and a member of the Advisor Panel.
[return to top of this report]