i want to see if these \"build a . . .\" flash sites (to support a user customized ordering process) are done using regular flash or Flex?
When i start - my 1st choose were Flash Professional, coming with Adobe CS's packs. It is not bad option for a just new programmer, as well it does offer "the creative approach". But a bit short u would like probably to get more control over your code, as well with growing your knowledge into the source, and object-oriented programming you will probably start looking for something which will provide you more power into exchange to creativity, then jumping into Flex probably will happen :).
My suggestion is :
This will probably done your project. when you are ready with all of this, you will be probably ready to jump into deeper waters, and Flex will awaits you there to rebuild up to one fully growth project.
Then maybe you will start thinking about storing your user settings and changes he made, this is the server side, which will open you another super large and funny world to explore and understand. :)
.. just an add - just check the Youtube videos about doing things with Flash Professional. it will be really good powerup. :)
here some tools which u might more than enjoy into the process of creating things for Flash platform :
Ilustrator CS5.5
3DS MAX 2010 ( for some super cool looking 3D models ) ;)
#Adobe FLEX | #Adobe Flash
#Programmer based | #Designer based
+Rapid RIA (MXML for designers) | +Stage & Timeline Based
+Easy to build up simple stuff (think LEGO) | -From scratch
+Skinning | -No skinning
-Problematic skinning | +Easy to design graphical parts
-Missing several parts (graphically) | +Easy to design graphical parts
-Lots of documentation reading (for everything) | +Err... bare functions?
-Bugs lots of it (And working around it) | +Base functions may do little, but they are bug free
+Many "special" user interactions built in | -Err... code it yourself
+Highly modular (file wise) | -Not so (though MovieClips are arguably modular)
-Size of .SWF (Including the flex framework) | +Bare minimal stuff
+Access to special Mobile phone features | -Neg
+ADOBE AIR -> Desktop application features | -Neg
-Animated movies are near impossible to make | +So you make them here and export them to FLEX
The question of Flash or Flex is really based on preference. For in your case, it is nearly interchangeable. Hence, to truely understand the major differences, you need to understand their history [sort of, it's a really long list down]
Flash was created for the web display / distribution of vector based animation / graphics / application by Macromedia. Note that this was initially created in an era where Dial-Up is still common place. And drove to great popularity, due to its flashPlayer engine, displaying "stunning"/"wowing" animations / websites / applications despite its small small [.swf file] size. [Remember the era of splash pages?, and flash animations].
While initially having a small code base [AS1/2], that was originally meant for interactive animations. Many web designers, were quick to exploit the timeline, having different "pages"/"content" on each frame [think modern day states], and having multiple nested timelines via movieclips. It was crude, but it works =) And flash pages were seen almost everywhere.
Especially since it could work on any computer, any browser (a kick to both Apple and Windows).
And with the growth of flash, so was the growth of its code base (AS1 -> AS2). That was, till it was purchased over by its long bitter rival #Adobe. In which the code base was completely redone from the ground up, to the AS3 you see today. Which gave it a much structured coding base (as compared to the unplanned built up of AS1/2), along with a suite of many other features (better encryption, memory protection / etc)
Unknown to most users of Flash, under the hood of the player, frames, timelines have always been "simulated" by code. And AS3 makes it much easier to manipulate the timeline via code. However Flash, has several drawbacks for the growing era of RIA (Rich-internet applications), that has gain momentum due to Flash / Java. Such as sever-client data connection (though there are work arounds), and more importantly...
The timeline...
Originally used to easily manipulate animations, Flex just kicks that whole system out of the window. And with good reason too. In many cases of RIA done in flash, you would have "movieclips" jumping to various frames, which simulates the current state system. And was actually counter productive to RIA development (Though it was mitigated by Frame labels), while producing huge un-needed overheads. As it was essentially simulating states.
Hence flex was born (okay, timeline is only one of the several reasons), taking away the roots of "animation" in flash (and the vector drawing capabilities). And recreating an IDE, that is mainly programmers orientated. (ever thought its weird to be greeted by an animation timeline as a programmer?). Timeline is out, states are in. And as an additional "icing" to the cake, MXML was born. As a means of rapidly prototyping and creating interfaces, for RAPID RIA development. Which became one of its major selling points.
FLEX: Allows you to rapidly create RIA for any platform / browser (your phone too)
Though the shift from timeline oriented flash to flex may be difficult (it was difficult for me), Flex at the end of the day proved to be much more suited for RIA development. While making coding much nicer then Flash.
The side-effect of FLEX, you can never leave Flash, if you need animations done, and gone is the simple stage that flash provided. Not the heavily XML based nested stage FLEX provided. Hence the "love-child" Flash Catalyst was created. (Though I suspect it may be based of WIX). As a means of rapidly designing flash websites. You see, a major major draw back flex had, was that it lack the "stage" flash had. And not all websites is meant to use the MXML templates given. And if you wanted to force your way (workarounds such as skinning), it was a pain. So this love child was created. (Try creating a simple custom graphic button in flash vs flex).
While retaining the timeline (sort of) and stage like interface of flash. It retains the state based properties of flex. And presto. Flash Catalyst was born.
It is generally meant as means to "create" the desired look / feel, for a website, before exporting it over to FLEX / FLASH. (Automatically, handling all the workarounds).
(Possibly, part of the marketing scheme). Is that all these products ARE INTERCONNECTED. And they support projects linked to one another. For example, a FLEX application can load a FLASH movieclip, which can be develop in a timeline based nature. Similarly, Flash Catalyst can export itself to flex.
So which is better? The answer is NONE! : Its a matter for style and preference. Personally, complex animations, are done in Flash (timeline-> then convert to AS3). RIA development is done in FLEX. And their incest child is unused by me (Its neither here nor there, sadly for it).
However if you have always been used to timeline based designs (art students?), Flex will kill you. Similarly, if you have always been a programmer in JAVA or C++, Flash will kill you. (OK, that may be exaggeration).
As for under the hood: Most likely a code base in AS3 that generates the permutation / combinations. I highly doubt that there is an image for every possible combination (cupcake), for it is much easier, to use various 'images/graphics' (cream as set A, cupcake base as set B, toppings as set C). And to tie each set to the given options. And 'generate' the final image.
And for tutorial, on those examples:
http://active.tutsplus.com/tutorials/flex/build-an-xml-driven-contact-list-using-flex-3/
Basically you have a custom display for each option, and stack them up. Though I suggest reading up a lot of the basic Flex tutorials before this.
Short answer is to take best from both of them.
And here is a short story, which describe how big Flash project could be done.
Company receive order for a project X, and there are two departments are going to work on it, D (Designers who are going to create all fancy graphic for the project) and P (Programmers who are going to input some life into the lifeless design).
While guys from the P department drinking bear in the basement and creating data model for the project X, configuring software, and doing all routine stuff that are need to be done before starting a new project. Guys from the D department open Flash which is familiar for them, as they spent all their life in Ps,Ai and other Adobe products. (Flash is good, really good, if you want to play with a graphic objects. Move them left or right, add some fancy effects, create animation and stuff like that. Creating graphical objects for the future Flash project inside the Flash IDE is more natural.).
Nobody from the D department had never write a line of code, so when they finish creating first part of graphical assets they just compile this to the .swc file and pass it to the P department, where good fellows already start to wrote some code inside Flash Builder which is looks familiar for them, as they spent a lot amount of time coding with different programming languages inside Eclipse based IDE.
So in the end the project X, is nicely separated into the two parts: graphical assets which are created inside Flash - which was designed for creating animation, and graphic, and code which is written inside Flash Builder, which was specifically designed for this, because Flash wasn't really good for writing big amount of code.
===
Coming back to reality and your particular projects. I would suggest to create all screens(steps of customised ordering process) inside Flash, add a linkage for every MovieClips in the library(for the future use with action script). And after import those objects into your pure action script project. In this case you can have generic action script which you will use in different projects (as they are definitely would have some common parts). So you can reuse one code, and just change graphical assets for the different project.
In a case if you want to use only one tool Flash or Flash Builder(for coding Flex or Flash) in my opinion you should choose Flash Builder. Managing code inside it is a just a one pleasure, and I'm not sure if managing code is something that could be applied to the Flash.
I strongly recommend you use Flex because you need a clear cross platform, cross browser RIA (Rich Internet Application) solution.
I can give you some useful reasons..
1. Even if Flex and Flash share some common aspects in background, Flex lacks some loop-holes which Flash have. Your site design and layout is 100% safe with Flex.
2. Flex has predefined functions and classes that enable us to read or synchronize data perfectly. These predefined functions and classes will work for us automatically so that we can focus on animation and interactivity. First, try to use it and see the difference. Personally, I am using Adobe Flex as tool to create RIA (Rich Internet applications).
3. I have kept a function in flash to real XML file and parse it to next or previous record and I was passing this function once needed. Now and with Flex, we have predefined http classes that will work after passing URL.
4. RIAs developed into Adobe Flex is the cross browser and platform compatibility. Rich internet application developed in Flash player.Implementation of Flex player made the Adobe Flash Player to more and more user’s machine.
5. Adobe Flex product family helps IT organizations take advantage of existing skills and infrastructure to efficiently deliver a broad range of RIAs that can scale from simple marketing applications to mission-critical enterprise applications.