What is the relationship between Flex, Flash and ActionScript 3.0

10,684

Solution 1

Its a good question, and one of which many people tend to be confused with.

- Flash

The all singing, all dancing graphics and vector stuff you'll be aware of - This is primarily deemed as the visual stuff. When you open Adobe Flash, its an interface to build animated stuff turned into binary magic

- Actionscript 3

This began life as a small variable like assistance for flash graphicy stuff. It has evolved (as you're aware) into the full blown language based upon the ECMA standard. This is why its very similar to languages like Java and JS

- Flex

May become confusing from here.

Flex has many forms.

  1. Its an XML style language of which allows you to build up the 'flash' stuff via a markup language, instead of drawing it all yourself.
  2. This begins to become a stable component set based on the MXML (Macromedia XML) syntax.
  3. Flex wraps pretty much the entire AS3 language with this MXML syntax and thus becomes a framework

Its become the norm to have Flex as your frontend markup, tied into AS3 logic.

Whats surprising to many people, even those in the trade. Flex MXML is compiled down at compile runtime time to raw AS3 code and thats used when the SWF is deployed. - *edit:

This is why its just like an interpreted language,


when building an Flash app you may use a combination of these elements.

Primarily AS3 and Flash live hand in hand. AS3 and Flex is again a marriage. You can create Flex components in flash


To be made aware. This should not be confused with the Flex IDE - which is not the framework. Adobe's newest rendition of the software has been branded 'Flash Builder' to thwart confusion.

Solution 2

  • Flash (Now Adobe Animate) : Both the name for the tool (Officially called Adobe Flash Professional CC (previously CS#), but often called the Flash IDE), and the Platform. The Flash Platform is everything on this list, plus more. "Flash" also may refer to Flash SWF files. which is the compiled application.

  • Flex : Framework that uses MXML and ActionScipt. Includes many widgets, classes, etc for building rich applications in no time.

  • ActionScript 3.0 : Programming language that is used to create logic and interactivity throughout the flash platform

  • MXML : Declarative markup language used by the Flex framework.

  • Flash Player : The runtime environment that "plays" Flash SWF files.

  • Flash Builder : (Previously called Flex Builder) Code IDE based on eclipse, built by Adobe. Used to code anything for the flash platform, including ActionScript, Flex, AIR, etc. Also integrates nicely with the Flash IDE.

  • Adobe AIR : Adobe Integrated Runtime. Cross OS runtime, that lets you make Flash application that run and integrate with the desktop.

  • Flex SDK : Development Kit that contains a bunch of tools for building Flash, Flex, and AIR application. It contains the Flex compiler, that can be used to compile your Flash projects, including AS3 only projects.

Good overview of the Flash Platform: http://www.adobe.com/devnet/flashplatform/articles/flashplatform_overview.html

A few other links for further reading: Flash is being redefined, Flash is Not a Stepping Stone!

Solution 3

  • Flash is the runtime environment
  • ActionScript 3.0 is the programming language for the Flash Platform
  • Flex is an ActionScript framework

Solution 4

I think they're more intertwined that Shaz is making out. Actionscript is the core of it all really, to be more specific ActionScript Bytecode. MXML is a markup style language that is XML and can use either classes defined in MXML or AS, same with AS you can use MXML files with AS. The way it works is the mxml is compiled into intermediary AS3 then that AS3 along with any other AS files are compiled into Actionscript Bytecode (ABC) and that is all linked up into a swf file. The flash player is a plugin for the browser that interprets abc (it's a virtual machine that runs in the browser interpreting the ABC into machine code). If you develop an application using the Flash IDE the same thing occurs the library assets and timeline are encoded into ABC and linked into a swf.

Flex is a collection of classes (also known as a library) that makes developing applications easier (defines commonly used controls like buttons radio buttons, and common animations, fade move coordinates etc.). Once again same path for compilation and execution though.

Shaun

Share:
10,684

Related videos on Youtube

Anonymous
Author by

Anonymous

Updated on November 15, 2020

Comments

  • Anonymous
    Anonymous over 3 years

    I'm working on a project that uses ActionScript 3.0 with Flex SDKs. The project is built using the Eclipse IDE. I wonder if the Flex SDKs are used to support ActionScript 3.0 in Eclipse?

    What is the relationship between ActionScript 3.0 and Flash?

  • JeffryHouser
    JeffryHouser about 13 years
    Flex is an full SDK that includes more than just an ActionScript framework. It also includes a compiler, as one example.
  • Courtney Christensen
    Courtney Christensen about 13 years
    can you provide a link for your statement on MXML runtime compilation? I was under the impression that MXML was converted to AS3 at compile time. And that that code was compiled into bytecode (in the form of an *.swf) which is interpreted at runtime.
  • JeffryHouser
    JeffryHouser about 13 years
    So much right in this answer, but I feel some of it is a bit incomplet. When you talk about "Flash" it seems you're actually referring to "Flash Professional". Flash is the generic term for the "Flash Platform" ecosystem including tooling (Flash Pro, Flash Builder, Flash Catalyst), Runtimes (Flash Player, Adobe AIR), and the frameworks /SDKS (Flex, OSMF, TLF). Flex is an SDK which includes an ActionScript UI Framework, a UI Library, a command line compiler, and other tools. The process of wrapping up AS3 in MXML does not make it a framework. MXML is like a "code generation" language for AS3
  • JeffryHouser
    JeffryHouser about 13 years
    @zourtney Your impression is the same as mine. I missed that "Bolded" statement the first time through. I have to -1 the answer for that gross technical inaccuracy, despite some other good parts. If you want to see the AS3 code that is generated from MXML you can do so using the 'keep-generated-actionscript' argument.
  • splash
    splash about 13 years
    @www.Flextras.com: it was at the tip of my tongue! ;-)
  • JeffryHouser
    JeffryHouser about 13 years
    +1 I feel this is the most accurate answer yet. Formally the Flash IDE is "Flash Professional" and I've gotten into the habit of calling it "Flash Pro" to separate it from the Flash Player.
  • shaunhusain
    shaunhusain about 13 years
    +1ed it but feel this misses the ways that they really relate to one another... still like my answer for that but this is a well laid out explanation of each part as it's own entity.

Related