WTF! - What The Flash!

To most, Flash is just something online that lets you see really cool websites and videos. Many people have heard the term “Flash” being thrown around in the media over the summer. To my delight, this extra media coverage has gotten a few of my students, friends and colleagues asking “What exactly is Flash?”  and has given me the opportunity to let them know a bit more about the technology. Flash isn’t a just a product. It isn’t just a plugin. It isn’t just pretty cartoons and high definition video. It’s a platform. It continually pushes the boundaries of the web. Most importantly, it’s right at our fingertips.

Overview

What The Flash - Delivery Methods

RIA (Rich Internet Application):
Highly interactive web applications that offer an exceptional user experience. These applications can live out on the web but are more similar to a desktop application than to a traditional HTML website. Rich Internet Applications are not necessarily Flash specific.  They can be created with any number of languages and frameworks such as Javascript and Jquery.

Flash Player
Flash player is a small piece of software that is loaded in your internet browser and allows the playback of .swf  and .flv files on the web. Because Flash Player plays your flash content, and not the web browser, it can be consistently experienced by the vast majority of internet users regardless of browser or operating system.

Adobe AIR (Adobe Integrated Runtime)
AIR applications are RIA’s that  run on a computer or device by installing the AIR runtime directly on the system. AIR applications can call out to a data source on the web and update via the cloud (like a widget) or be completely installed on the desktop or device with no internet connection necessary. AIR applications will run consistently between different systems, browsers, and devices because they are delivered by the AIR runtime.

Flex
An open source framework used by developers to work with MXML and Action Script to create RIA’s and AIR applications.  MXML and AS3 are combined  within the Flex framework to produce RIA’s. Most commonly this is done while working in the FlashBuilder IDE. Both Flash Builder and Flash Catalyst are based on the Flex framework.

What The Flash - Flex Explanation

IDE (Integrated Development Environment)
At its core, an IDE is a piece of software that allows programmers to code with the help of a visual interface. Pieces of the interface may include panels like in Photoshop, or specialty areas that perform tasks to help in coding efficiency.  Examples of IDE’s are Flash Builder, Flash Professional, and even Dreamweaver.

MXML (no standard acronym!)
I never knew what MXML stood for, and after an exhaustive search found out neither does anyone else.  I do, more importantly, know that MXML is an xml based markup language used to layout user interfaces. MXML utilizes ActionScript to add interactivity, which is then compiled into a .swf or .air file and then delivered to the user via Flash Player or the AIR runtime.

AS3 (actionScript 3)
ActionScript 3 is an object-oriented programming language used by developers targeting the Flash Platform. It is commonly added within the  Flash Professional IDE to add interactivity and to control animations and behaviors. It is also used to make calls to data sources and to load any external information into the .swf.

File Extensions

What the Flash file exensions

.fxg (Flash XML Graphics)
The .FXG file format was created by Adobe to help enable compatibility and easy round-tripping between web design and development applications in the Creative Suite.

.fxp (Flex Project File)
When a Flash Catalyst file is saved, it is saved  with the .fxp extension. This allows the Flash Catalyst file to be opened and worked with directly inside of Flash Builder.

.fla
This is the traditional extension for files created in Flash Professional. Flash Professional CS5 brings a new version of the .fla extension that is more robust than its predecessors. Lee Brimelow explains the new version of the extension (and the  .xfl format) much better than I ever could in this post on theFlashBlog.

.xfl
To keep it simple, an .xfl file is basically an uncompressed version of a .fla. Again, Lee Brimelow’s post is an excellent in depth reference for this. You can export .xfl files from AfterEffects and bring them into Flash Professional to continue your work on them.

.swf (ShockWave Flash)
A file with the .swf extension refers to a published Flash file. In order to view a .swf, a user must have Flash Player installed in their web browser on their system or device. .swf’s are native vector files, which means they can be scaled to any size without a loss of quality. It also means that file sizes are generally smaller than their bitmap, or pixel based, counterparts.

.flv (Flash Video)
The .flv file extension is used for flash video. Flash Video is currently one of the most popular formats to deliver video on the web because of its high quality relative to its small file size and the large market penetration of Flash Player. The .flv format supports alpha channels in the video unlike it’s .f4v counterpart.

.f4v (Flash Video)
The file .f4v is a modern extension given to Flash Video.  Flash Player 9 or higher is required to play back a video encoded as a .f4v. An .f4v file is similar to it’s older brother, .flv, but is updated to take advantage of more modern Flash Player versions and video encoding technologies.

.air
The extension of the application package that gets opened in order to install an AIR application on a targeted device.

Applications

What The Flash - application Flow

Flash Builder
An IDE for developing Rich Internet Applications that utilize delivery via Flash Player or the AIR runtime. Flash Builder uses the Flex Framework to add interactivity and logic to  RIA’s and AIR applications. Applications can be entirely built within Flash Builder, or a developer can import and work with Flash Catalyst files from within Flash Builder.

Flash Professional
Both a visual design application and a Flash IDE. Complex animations can be made using the timeline as well as writing ActionScript code to control them. Flash Professional allows for high fidelity web typography and pinpoint control over objects. Flash Professional files are most commonly published in the .swf format and delivered via Flash Player, though can also be published in a variety of other ways. .swfs generated in Flash Professional can be brought into both Flash Builder and Flash Catalyst.

Flash Catalyst
Flash Catalyst is an interactive design tool used for creating simple web applications, websites, prototypes, and interactive content without writing a single line of code. Flash Catalyst files use the .fxp extension which enable it to work in conjunction with Flash Builder to add any complex data interaction. Currently trading the .fxp file is a one way street from Flash Catalyst to Flash Builder. Soon, however, Flash Catalyst and Flash Builder users will be able to use true round-tripping capabilities  in the development cycle of projects by trading .fxp files back and forth.

Conclusion
I hope at the very least this post helps to clarify how the Flash Platform puzzle currently fits together as a whole. For those new to, or curious about the technology, I hope this can act as a basic reference tool to jump start your own investigation into whether the platform is a good fit for your needs or not.