Choose the best Flash/Flex
What is Flex?
Adobe Flex can be thought of set of tools (SDK, compiler, debugger, profiler, FlexBuilder), application-framework, programming-model (MXML, ActionScript). It is meant for applications (enterprise, rich-internet or desktop based RIAs). Application developers can use existing patterns, best-practices and standards while building applications using Flex.
What is Flash?
When we say Flash, it’s confusing it can mean different things depending on the context. When you say Flash in context of building application/movie, it means Flash IDE (Authoring tool that provides stage, timeline, library like authoring metaphor). It is also taken as file-format (SWF) and runtime (Flash Player/AIR). Both enables you to build and deploy SWF files, the compiled bytecode that is interpreted by the virtual machine known as Flash Player on desktop browsers. Both authoring tools support scripting using the ECMA Script-based ActionScript language.
Flex 2/Flash CS3 supports ActionScript 3, which is compliant with the ECMA Script Edition 4 and opens up a new range of possibilities for web-based building applications.
No matter, which development tool (Flash/Flex), the output (SWF) is executed by Adobe Flash runtimes (Player and Adobe-Integrated-Runtime or AIR). So technically, a Flex application can be called Flash application because output-format-SWF and runtimes are same.
But there are some differences the way applications are developed and compiled.
ActionScript compiler used in Flex SDK (FlexBuilder) and Flash IDE are same but SWF compilers/linkers are different. Flash IDE has to take care of timeline, library-symbols etc where as SWF compiler (in mxmlc) uses different way of doing it…
Typically a SWF file contains two things -
ActionScript-ByteCode (ABC)
- Assets (images, video, audio)
- Library – Flash IDE
- Shape definitions – manually drawing using Flash IDE tools (Vector)
ABC is generated using ActionScript compiler and rest of things are taken care by SWF compiler. If you know above points, you now that Flash Player is more than VM (virtual machine), it does rendering of graphics, playing videos, network connection etc.
Flex application (output) has loads of things in it,
for ex: bootstraping (preloader, framework-initialization) code and code for most of framework (atleast base-classes, style-definations etc).
A simple Flex application with just one button, would be atleast 100KB because it contains flex-framework code and boot-strapping code. Flex is not meant for the use-case (animations etc). If you are creative (designer, artist etc) person, you can use Flash IDE to save sometime. You can achieve most of things using ActionScript but there are things which is meant for design-tools (Flash IDE, Photoshop, Fireworks etc).
Use Flex when you are trying to create applications (Rich Internet or AIR). You need to understand the difference between a website and application. An application provides an interactive interface, manipulates information on client and as well as communicates with server. FLEX is much more well-equipped to develop Custom Components and handle User-Events that enables it to be a better tool for developing RIAs.
FLEX applications are rather bigger in size than the those developed in FLASH IDE.
Flash stores your application structure in a binary FLA file, whereas Flex uses a text file based on the markup language of Flex, MXML. Flash has been designed to facilitate the creation of interactive content, whereas Flex is geared toward application development.
Flex Isn’t Flash:
• Flex has no timeline
• Flex has no library
• Flex has no drawing tools
Flash Isn’t Flex:
• Flash has no MXML
• Flash has limited CSS
• Flash does not have the new components
Flex Strengths:
• Form based apps / wizards / heavy data entry
• Easy coloring of components
• Layout engine
• Separation of code and controls
• Programmers like it
Flash Strengths:
• Designer Tool
• Easy to integrate animation, sound, & video
• Timeline
• Drawing Tools
Design Tools in Flex:
• CSS
• Skinning
• FlashSkinning
• Filtered
• Programmatic
• Images
. As I learn new stuff and pickup interesting stuff from around the internet and the other Flash/Flex Gurus out there, I store them here in this blog so that I can always check back for stuff filled away safely.

[...] What’s the difference between Flash and Flex? the answer is in the title, and here http://kanuwadhwa.wordpress.com/2007/08/03/choose-the-best-flashflex/ [...]
Pingback by Maan’s Blog » Blog Archive » Flash is for designers, Flex is for programmers | February 20, 2008 |