views:

438

answers:

6

I've been using flash for a long time, mostly as an animation tool with a little dabbling in actionscript. Over the years I've moved from mostly making animations to mostly making small flash games or proof of concepts in my spare time. I've been very reluctant to learn as3 as I am not much of a programmer, but a friend of mine convinced me.

I was looking things up and I keep coming across Flex, I am not entirely sure what flex is and I was hoping someone could explain it to me. From what I've looked up, it sounds like flex is just actionscript outside of flash if that makes sense. Is this someone thing I should look into?

A: 

Flex is an mixed open-source/proprietary framework + compiler by Adobe written in ActionScript and an XML based declarative language called MXML (used to construct user interfaces in a declarative style). The framework consists mostly of GUI and related classes.

David Hanak
+6  A: 

Both Flash and Flex use the ActionScript language — Flash CS3 and Flex 2 both support ActionScript 3 (which is compliant with the ECMAScript Edition 4), whereas the older version of Flash supports only ActionScript 2.

The differences between the two are:

1) Flash has been designed to facilitate the creation of interactive content, whereas Flex is geared toward application development.

2) Flash stores your application structure in a binary FLA file, whereas Flex uses a text file based on the markup language of Flex, MXML.

3) Different deployment models.

Flex originally was designed to bring enterprise programmers to the Flash Platform. As a result, Flex features tools designed to accommodate the special needs of hardcore programmers.

Take a look at this blog post which illustrates the strength and weaknesses of Flash and Felx quite nicely.

ISW
doesn't flash CS3 support as3?
yes, read the first line of ISW's answer
euge1979
That's ok, I had it wrong in my original edit :-)
ISW
+3  A: 

Flex is many things, but in short Flex is a technology that combines MXML and ActionScript and allows you to quickly build Rich Internet Applications for the Flash Player. Think of MXML as HTML. It's a markup language to build user interfaces. Good to know is that MXML is compiled down to ActionScript, so it is perfectly possible to write everything in ActionScript and avoid MXML although I wouldn't recommend that in most cases. It is just a layer on top of ActionScript.

The Flex Framework is a set of UI components, data collections, validators, service classes and much more that form the building blocks for your application.

The Flex SDK is the framework and the compilers that are needed to build your source code.

Flex Builder is the tool that can be used to create Flex applications.

Christophe Herreman
A: 

it sounds like flex is just actionscript outside of flash

not 'outside', as it still runs on the flash plugin. it's more like a framework for writing applications using AS3 and run them on top of Flash.

maybe the 'outside flash' idea comes from AIR. that is simply a browser that doesn't look like one! it renders HTML (with WebKit), JS and Flash. the only thing missing is an URL bar. that simple difference is enough to make webapps look more like desktop apps.

Javier
+2  A: 

Flex is the name of a framework. This framework allows you to use a markup language called MXML to define structure (similar to HTML) and a scripting language called ActionScript to define behavior (similar to JavaScript). Flex comes with a full set of components for UI, data etc. to make building applications faster.

Flash is an animation package you buy from Adobe. In Flash you can create animations on a timeline and define behavior with a scripting language called ActionScript.

Both Flex and Flash target the "Flash Platform". In other words, the Flash Platform (the Flash plugin) plays SWF's and there are many tools that can build SWF's. Flex and Flash are only two of them.

E.g. there are also many open source tools that target the Flash Platform like MTASC (AS2), Haxe & SWFMill.

Luke
+1  A: 

Another interesting thing to note is that Flex only supports ActionScript 3, and therefore can't be used to make apps that will work with FlashLite for embedded devices.

Brendan Dowling