I belong to a number of programming mailing lists, and occasionally I see people ask about Flex, and I figured I’d give my two cents worth of what I understand Flex to be. Recently on the Direct-L mailing list, a list for Adobe Director developers, this topic came up. Here’s the reply I gave to this question:Hi,
As a Flex developer, I thought I’d interject here and add to the discussion. I realize some people may have already covered these points, but I figured I’d explain it how I understand it.
There are a number of terms to understand when talking about Flex:
Flex Builder 3
Actionscript 3 –> The latest programming language for interacting with the Flash Player. Flash CS3/CS4 create swfs that play in the Flash Player. The current Player can run swfs created in AS3 and is backwards compatible with Actionscript 2, and 1. As we know, Director can interact with AS 1, 2, and a limited set of AS 3 swfs.
Flex SDK –> http://opensource.adobe.com. The SDK includes command-line compilers to create swfs (currently running in Flash Player 9 or 10) and AIR files (that run on the desktop). This is free and opensource, and you can use any text editor to write your code. Flex includes a number of components – pre-built controls/layouts/interfaces to allow for fast prototyping of Rich Internet Applications or RIA’s. Flex is a framework. A set of classes that extend the current implementation of Actionscript 3. This additional set of classes is not currently supported in Director.
Flex Builder 3 –> http://www.adobe.com/flex. An Eclipse based IDE from Adobe that gives you a GUI for creating Flex applications that run on the web (swf) or desktop (AIR). This is a commercial product. It uses the Flex SDK to compile the code, and includes a powerful script editor, debugger, and additional memory profiling tools. Comes in two flavors, Standard and Pro.
MXML –> Markup language for use in creating Flex apps. It is a way to quickly layout visual elements using code. MXML is compiled down to Actionscript 3, which is compiled into the swf.
Why Flex, why not just Flash? Flex is for developers. You don’t have a timeline to create animations with. You typically see it used in enterprise level apps. Since it uses Actionscript 3, you can easily integrate Flash produced animations, etc. They are two different tools that provide different approaches to creating content for the Flash Player, and AIR. I use both when creating my applications. I use Flash to create the skins/animations and Flex to create the interactions.
There is so much more to it than what I’ve explained, but hopefully you have a better sense of how they relate to each other. I do have a website where I cover a lot of Flash/Flex stuff –> http://www.tutorialsbyibrent.com