Alright, I'm confused by all the buzzwords and press release bingo going on.

  • What is the relationship between flash and flex:
    • Replace flash (not really compatible)
    • Enhance flash
    • The next version of flash but still basically compatible
    • Separate technology altogether
    • ???
  • If I'm starting out in Flash now, should I just skip to Flex?

Follow up

Ok, so what I'm hearing is that there's three different parts to the puzzle:

  • Flash
    • The graphical editor used to make "Flash Movies", ie it's an IDE that focuses on the visual aspect of "Flash" (Officially Flash CS3?)
    • The official name for the display plugins (ie, "Download Flash Now!")
    • A general reference to the entire technology stack
    • In terms of the editor, it's a linear timeline based editor, best used for animations with complex interactivity.
  • Actionscript
    • The "Flash" programming language
  • Flex
    • An Adobe Flash IDE that focuses on the coding/programming aspect of "Flash" (Flex Builder?)
    • A Flash library that enhances Flash and makes it easier to program for (Flex SDK?)
    • Is not bound to a timeline (as the Flash IDE is) and so "standard" applications are more easily accomplished.

Is this correct?


  • 1
    Just to be specific, "Flex Builder" is the name of Adobe's IDE and "Flex SDK" is the library. – 17 of 26 Sep 12 '08 at 14:29
  • @Shawn, Would you please comment on the question itself pointing out the problems so they can be corrected? I'm willing to change the selected answer, but it is concise and addresses the question. Other answers are a chore to read through, or don't give much more help than adobe's marketing stuff. – Adam Davis Nov 14 '08 at 18:00
  • Flash is the plugin. The other two are wrong and/or misleading. Actionscript is right; but add that it's a proprietary superset of javascript (but you can use javascript). Flex is 2 semi-interchangeable libraries; one for the browser, the other (AIR) for the desktop (i.e. not the browser). – dkretz Dec 12 '08 at 17:49
  • The IDE is Flex Builder. – dkretz Dec 12 '08 at 17:54
  • 2
    They renamed it to Flash Builder. – mk12 Nov 28 '09 at 3:57

22 Answers 22


Adobe Flex Builder is Adobe's IDE for developing applications that will run in the Flash plugin. The Flex SDK refers to the libraries that developers uses to write the applications.

Essentially, the term 'Flex' is the development side and 'Flash' is the run time side of Adobe's technology.

Correction: The term 'Flash' is also used to refer to the Flash IDE which designers use.

  • 6
    Flash is also a "development" side. Flex and Flash are two different products that Adobe has for generating "Flash Content" (aka SWFs). – Herms Sep 12 '08 at 14:33
  • 3
    This is wrong. The "Flash Player" is the runtime you target. The Flash IDE and Flex Builder are 2 alternative methods for creating your content. – Iain Sep 17 '08 at 10:28
  • It's not wrong, it's incomplete. I was speaking from a developer standpoint since I've never used the Flash IDE. I will edit the answer to be complete. – 17 of 26 Sep 19 '08 at 2:50
  • 1
    Flex is technically just a framework on top of actionscript 3 that compiles down to a swf that runs inside the flash player. Flash (IDE, part of the CS suite) is another way to generate swf's that run inside the Flash player. the Flash IDE though is generally geared more towards creative professionals where flex (the framework) and flexbuilder (the programming IDE) is geared towards programmers and developers. – Ryan Guill Apr 22 '09 at 15:58
  • 1
    Further expansion: The Flash IDE is centered around the Timeline / MovieClip, while Flex (and the Flex IDE) focus on States, and State Transitions. Flash applications typically fell into two classes (or two segments) - those with animation, in which the time clock is running and objects move/change smoothly (via tweening); and those in which the timeline was broken into discrete segments, often only a single frame, each with a "stop()" and where there is little or no use of animations. – Mark Laff Aug 25 '09 at 1:18

The term Flash can include any of the other terms defined below, and I find that saying "Flash" without specifying exactly what you mean can be confusing and misleading. Case in point: I'm not sure what you specifically mean when you say "Flash" in your question. Is it Flash Player? The authoring tool? Or the whole collection of technologies that fall under what Adobe calls the "Flash Platform"? To help clear all this up, let me define the technologies involved in creating Flash and Flex content so that we're all using the same terminology here:

Flash Player is a runtime for rich media content in the browser. There is also Flash Lite to run Flash content on older or low-end mobile devices, and Adobe AIR extends Flash Player to allow content authors to publish native desktop and mobile applications that can integrate with things like the file system, windowing systems, and device sensors like the accelerometer and camera. Collectively, Adobe refers to these as the Flash runtimes.

Flash Professional (often called the Flash authoring tool or the Flash IDE) has traditionally been the primary application used to create content that runs on Flash Player. It is very designer oriented with timelines, layers, and visual drawing tools. Software developers may find this application disorienting and limited compared to other development tools that focus more on code, like Flash Builder (see below). When someone says, "I built something with Flash", they often mean the Flash authoring tool, but that's not always the case. For that reason, it's good to always clarify to avoid any confusion.

ActionScript is the primary programming language supported by Adobe to target Flash runtimes. The current version is ActionScript 3 (abbreviated as AS3), which has been supported since Flash Player 9. Content created with older versions of ActionScript can still be run in the latest versions Flash Player, but new features are only supported when using ActionScript 3 to create new content.

Flex is a collection of technologies designed to create rich applications that target the Adobe's Flash runtimes. Though saying "Flex" previously had the same ambiguity as "Flash", the Flex brand name is becoming more and more focused on the Flex framework and SDK, described below.

The Flex SDK consists of compilers, a command-line debugger, and the Flex framework. The included compilers are: 1. MXMLC, an ActionScript and MXML compiler to output the final SWF file for deployment to Flash Player. 2. COMPC, a static library compiler for ActionScript that outputs SWC files. 3. ASDOC, a documentation generator built on the compiler technology.

The Flex framework is a collection of ActionScript classes designed to build Rich Internet Applications. It includes things like user interface controls, web services and other connectivity classes, formatters and validators, drag and drop, modal windowing, and component states. These classes are in the mx.* package. Generally, when developers say "Flex" without any clarifying information, they mean the Flex framework and not the product formerly known as Flex Builder.

In 2011, Adobe donated the Flex SDK to the Apache Software Foundation. It is now called Apache Flex and it is fully managed by the community rather than Adobe. However, Adobe employees continue to contribute to the project, and Flash Builder (see below) continues to support new SDKs released by the Apache Flex project.

MXML is an XML-based markup language used by the Flex compilers to make layout and placing components into containers easier. The tree-like structure of XML make the containment hierarchy easier to visualize. MXML is actually converted to ActionScript during the compilation process.

Flash Builder (formerly known as Flex Builder) is a development environment that allows developers to build different project types to create SWF files that are deployed to Flash runtimes. It is built on the Eclipse platform and is more familiar to software engineers. Flash Builder supports projects built with Flex or pure ActionScript. Flex projects include the Flex framework. ActionScript projects are the most basic you can work with, starting with a single class and an empty canvas, and the Flex framework is not included.

Flash Builder does not replace Flash Professional. Some people who have traditionally used Flash Professional may now choose to use Flash Builder instead. Often, these are software engineers who appreciate or require the advanced development tools offered by Flash Builder or don't work heavily with assets designed in a visual tool. Some developers may write their code in Flash Builder, while choosing to compile their projects in the Flash authoring tool. Often, these developers are also designers, or they are working with other people who are designers. In this situation, there may be many graphical assets created in the Flash authoring tool, and it could be difficult or simply inappropriate to bring them into another environment.

The Flex framework is specifically designed to build applications. It includes many traditional form controls (buttons, lists, datagrids, etc) and much of the code runs on an advanced component framework written in ActionScript. Not everyone is building the sort of content that Flex is designed to create, and Flex does not replace traditional Flash development practices for everyone. It is a better approach for some developers, but may not be right for others. More design-heavy websites, such as those created for movies, music, energy drinks, advertising campaigns, and things like that probably shouldn't use the Flex framework. These types of content might be better suited to Flash Professional or a pure ActionScript project in Flash Builder. Similarly, little widgets you put into the sidebar of your website or on your profile in a social networking website may need to be built with pure ActionScript (without the Flex framework) because they require a smaller file size and they probably don't need a big complex component architecture designed for larger applications. When targeting Flash runtimes, your development environment, frameworks, and workflow should be chosen based on your project's requirements and goals.

  • 5
    You forgot to mention the Adobe Air, which is a platform for running Flash/Flex RIA Applications on a desktop. – Roland Tepp Sep 18 '08 at 7:08
  • 4
    Also, Adobe has recently announced that they will be changing the name of the "Flex Builder" product to "Flash Builder" though the "Flex SDK" and "Flex Framework" will remain. – Adam Ness Sep 10 '09 at 22:22
  • forgive me if I jump in with a little side question..(maybe it could also help in understanding the differences between techologies described above): which one, among Flash Professional and Flash builder, is the preferred authoring tool to create those flash games you commonly find in flash games sites? – jj_ May 29 '13 at 11:53
  • I don't think either is generally preferred over the other. People with a more design-centric background tend to prefer Flash Pro. It has a lot of visual tools for drawing, and you can organize things in "layers" and in a library of "symbols". It's kind of like Photoshop or Illustrator combined with a code editor. People with a coding-centric background tend to prefer Flash Builder. Flash Builder is more like Visual Studio or IntelliJ IDEA with a near complete focus on editing code. You draw with code or embed external art files. Both are perfectly valid environments for building games. – joshtynjala Aug 8 '13 at 20:37

Yeah, I was confused by this for quite a while too.

Flex seems to be thier name for the 'Flex Builder' IDE (based on Eclipse), and the general approach of building flash files using mxml and ActionScript rather than the normal flash tools.

I think the mxml and ActionScript approach (i.e. Flex) is designed to appeal much more to programmers, where as the Flash side is designed more to appeal to graphic designers.

The end result of either approach is a .swf file which can be run in the browser's flash player plugin (although with Flex you can target the Adobe Air runtime instead if you want access to the file system and to run offline etc).

My advice would be, if you're coming from a programming background, to start with Flex.

  • Up vote, because you are technically correct, but I'd say using FlashDevelop and the Flash IDE together is also a good way for programmers to work, and is like using Visual Studio and Blend together. It comes down to whether you want to use the Flex framework or roll your own ui components. – Iain Sep 17 '08 at 10:31

What is the difference between Flex and Flash?

The way I keep it clear in my mind and explain it to others is as follows:

Choose the right tool for what you want to create.

If you want to write an APPLICATION using Flash technology, use Flex.

If you want to create an ANIMATION using Flash techology, use traditional Flash.

Flex is optimized for application construction (but you can create primitive animations using states) and it compiles into a SWF.

Flash is optimized for animation construction but you can also create applications with some extra work, and it compiles into a SWF.

Once you have your SWF you can play in your Flash player, although Flex requires Flash 9 or higher.

In conclusion

Application -> Flex -> SWF

Animation-> Flash -> SWF

Hope this helps.


Part of the confusion is that "Flash" means multiple things. Flash can mean one of a multitude of applications, OR the general technology behind SWFs.

There's the Flash CS3 product that Adobe sells. This is generally targeted at designers and uses a Timeline-based approach to creating SWFs. Previously the Flash product was the only way to create SWFs, and SWFs generally were just used for animations and other visual effects not possible in a browser otherwise.

Then there's the Flash Player. This is the application/plugin used to run SWFs. SWFs can also be wrapped in a "Projector" which allows them to run as a standalone app, but that's not as common.

At some point (I don't know when) Flash started to be used for more interactive applications. The Flash product wasn't very well suited for kind of work, as it was designed to create animations. Recognizing this, Macromedia created Flex. Flex is another development environment for creating SWFs, but it targeted more at developers than designers. The latest version is Flex 3. The Flex SDK is freely available and includes a command line compiler, debugger, and the class libraries. Adobe also provides (for purchase) the Flex Builder app, an Eclipse-based IDE for creating SWFs using Flex. There are some free IDEs for using Flex, most notably FlashDevelop, though I don't know of any that provide a visual designer for MXML, the markup language used by Flex to define UIs, or a visual wrapper for the debugger.

If you're approaching Flash from a developer's perspective then you're going to want to use Flex. It's probably a lot closer to what you're used to dealing with, and seems to be the direction Adobe is pushing Flash in general.


Flash is a Runtime Environment - you use the Flash Authoring tool to make some Flash content, and the Flash player processes your content, executes the scripts, and draws the appropriate pictures onto the screen.

Flex is a Development Framework - you use the Flex development tools to define how your component-based content should work, and then Flex generates the Flash content for you. You could have made the same thing with the Flash Authoring tools, but using Flex may let you avoid reinventing some wheels.

In functional terms, Flash is an extremely versatile runtime; it gives you lots of freedom to do anything you want. But if you're building a loan simulator, you probably don't need the freedom to define precisely how all the pulldown menus and screen transitions work. Probably you'd rather that you could just use premade components for that stuff so you can concentrate on the loan stuff. Flex lets you do that, with the cost that it may turn out to be a lot of work if you decide that you do need a lot of freedom to change all the fine details.


Here's another simple view based on how you describe an application you want to develop.

Do you want it to have the highly granular UI capabilities you expect from a workstation (e.g. Windows) application, with a fairly complete set of controls (listbox, combobox, grid, etc.)?

Flex gives you that.

Do you want to deliver it to run in most browsers (i.e. anywhere Flash is installed/installable)?

Flex gives you that, because it runs in the Flash virtual machine.

Do you also want to be able to offer it to run in the OS, not in a browser (with minimal coding changes?)

Flex can give you that, by allowing you run it, not in the Flash VM, but instead in the Adobe AIR VM (which has versions for Windows, Mac, and Linux) which provides wrappers for common OS resources like the filesystem, OS dialog-box UI components (e.g. "Open/File/ etc.)

Are you OK using javascript as the development language? You need to be, because it's the only language supported, in the form of ActionScript, which is a proper superset of javascript - it accepts javascript code directly.

So the partioned pieces are:

  1. A runtime environment, either the Flash browser plugin, or the AIR runtime (the native OS equivalent).

  2. Actionscript as the development language.

  3. A bunch of libraries of controls and other resources, i.e. the typical Window, Frame, Combobox, Listbox, Image container, TextBox, TextArea, a wysiwyg-y RichTextArea, etc.) These are the province of Flex.

With the above resources alone, you can use the free command-line compiler to build applications in the same fashion as you would with any other command-line-compiler language with libraries.

Then, if you want a fancy IDE, there's Flex Builder, which is a set of extensions to good-ol' Eclipse (for several hundred $$). Or there are several other IDE's that are more or less equivalent.


Flex is a framework FlexBuilder is an IDE (in an attempt to resolve the confusion between the 2, adobe is renaming FlexBuilder to FlashBuilder)

if you do not know what a Framework is:

Flex is to Flash as what CodeIgniter is to PHP

or like what .net is.

I like to think of a framework as extending a language like you would extend a class in OOP.

  • 1
    Actually, jQuery is an API, not a framework. A framework would be like CodeIgniter. – Metropolis Apr 6 '10 at 22:09
  • @Metropolis you're right. I updated my answer. – JD Isaacks Dec 10 '10 at 19:09
  • +1 for 'Flex is to Flash as what CodeIgniter is to PHP' settled it once and for all for me! – Matical Dec 18 '13 at 23:33

Flex is a development framework that compiles xml and actionscript into a SWF, which runs on a client machine accessing a website. It can also run as a desktop application using Adobe AIR. Flash uses a drawing canvas instead of xml. Compiled SWFs can be referred to as Flash, which adds to the confusion. You may find Flex similar to ASP.NET, which takes xml and c# (vb.net, etc) and compiles into a dll. Of course, ASP.NET runs on the web server.

If you are choosing between Flex and Flash for an application, consider whether the application will be based around data. If you want to make a pretty spreadsheet application, Flex would be the way to go. If you are creating a video game or some sort of presentation, you would probably want Flash.


Following up on this, I found a very useful article on the subject:

Adobe Flash and Flex—Which Makes the Most Sense for Your Project?

The Flash Integrated Development Environment (IDE), otherwise known in its current version as Flash CS3, is an ideal tool for developing character animation or linear animation projects. These are projects that require little coding and can be effectively implemented with the Flash IDE timeline.

In other words, Flash CS4 is very tightly bound to the timeline - good for linear sequences or animations. While one can add loops and interactivity in the form of jumping to new points on the timeline, it is limiting for projects which cannot easily be mapped out in terms of progression over time.

It is, in simplistic terms, an animation tool with very powerful interactive features - creating and composing new elements on the fly, and jumping around on the timeline allows one to create applications, and the Flash CS4 IDE makes this relatively easy, but it's not a great platform for application style software.

Flex was built as an answer to that - while it makes use of the same elements and exposes the code, it is not bound to a timeline, and has more in common with object oriented programming languages than animation languages.

The Flex Builder IDE includes both the programming IDE, as well as a GUI designer for quickly building interfaces, and a few other tools for developing applications that run on the flash player.


Flex and Flash have different target audiences. Flex is more geared towards developers where as Flash is more geared towards designers and artists.


Flashdeveloper has been mentioned as a free tool to develop flex applications. I just want to add a free tool to design applications (create an MXML file using a designer): designview. It's available directly on the adobe website, it's an air application that is basic but that give the possibility to take a look freely and easily to the possibilities of flex.


Flex is a free and open source framework based on ActionScript to develop SWFs and AIR applications. Flex Builder (now renamed to Flash Builder as of version 4, to avoid the confusion) is a commercial IDE from Adobe to develop SWF/AIR using the flex framework. While flash (CS3) is good for animation related stuff, flex is good for application/ui related stuff. Adobe positions flex as an RIA (Rich Internet Application) framework.


Flex runs on Linux, too, while Flash doesn't.
Flex is kinda Flash CS 4 second edition.

Flex is less graphical, as it separates compiler and IDE, which allows for command line compilation (makefiles, large projects so to say) which allows for alternative IDE's to Flash.

Flex lacks some classes that Flash CSX has (e.g. fl.controls), while Flash lacks some classes that Flex has (e.g. mx.controls or mx.alert).

All in all:
You can have your own Flash compiler for free by downloading Flex 4 SDK and FlashDevelop. But it is no substitute for Flash.
Flash produces much smaller files (e.g. Flash compiles a project to 100 kB while Flex is compiles the same project to 500kB). So Flash is for internet multimedia applications, while Flex is for desktop multimedia applications.


Flex Builder 3 --> Flash Builder 4, even though you use it for Flex. You can also use it for Flash. If you really want to learn about all this stuff, you should just buy a veteran lunch for a day because it will save you MONTHS. Adobe makes some cool products, but is also well-known to be a lazy company, and this leads to extremely poor documentation. Unless you are a fan of "livedocs," which is a term Adobe coined to describe "slow and bloated HTML."

  • 1
    one up for the quip on livedocs..accurate to the point of being hilarious! :) – himanshu Dec 30 '10 at 9:18


Adobe Flex

  • 1
    Too many men, Theres too many people, Making too many problems, And not much love to go round, Cant you see - This is a land of confusion. (Genesis) – Adam Davis Sep 12 '08 at 14:18

Flash is a programming language rather similar to JavaScript but with support for static types.

Flex is a flash library that is intended to help people program in Flash on a much higher level.

It may be helpful to some to think about this as Flex over Flash being like MFC over C++.

  • Not really. The language is ActionScript. Flash and Flex are two different environments for creating SWFs. You can use ActionScript in either or them, though Flex is more developer-oriented while Flash is designer-oriented. – Herms Sep 12 '08 at 14:31

Flex is basically a language that compiles down to a flash "movie" or "applet", that will run in the Adobe Flash player plugin.


In very simple terms, Flex technology uses MXML to create applications. MXML is analogous to HTML and Flash components is analogous to something like form elements.

MXML basically allows you to specify what Flash components (such as a table, dropdown list, or something custom that you build in Flash) go on an application screen.

This is a very simplified answer, but that's how I tend to explain Flex.

(Flex Builder is an environment for you to develop Flex apps and Flash apps)


Flex is not a programming language. flex is a Framework for developing Rich Internet Applications over the Flash runtime and includes ActionScript & MXML as language.


Flex is a collection of Technologies, Tools and Frameworks for building cross platform Rich Internet Applications.


The best answer I've found for "What is Flex" is at this page: http://www.adobe.com/products/flex/faq.html#flex-flash

Search for "How is Flex different from Flash?"

My interpretation of this is that if your application was generated from Flash Professional, it is a "Flash" application. If it was generated with the Flex SDK (Flash Builder, Flash Develop, or straight code & command line tools) it is a "Flex" application. Both "Flash" applications and "Flex" applications compile into bytecode that can be run by the "Flash Player" or by "Adobe AIR". Both types of applications can include "Actionscript" code.

Your Answer

