« FlashLoaded 3dWall working in flex as a flex component | Main | Debugging flex modules »

February 27, 2009

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Thanks for the rundown. I had a potential client who had developed a huge kiosk application in Flash and I had recommended they move to Flex in the next version. They asked me to explain the difference and I said some of what was in this article. I also pointed to my ActionScript posters that detail all the classes. I said "This one poster is for all the core classes that come with Flash Player. These other four posters are the classes that come with Flex."

Thanks Jamie, it is hard to describe. I personally use flex for even small things, we had to do a banner rotator for http://www.atlantasymphony.org/home.aspx that would be driven by an xml file and it only required simple fades, so we did it all in flex. I use flash when we need more natural animation. You are right that flex comes with a bunch of other classes and libraries, but I think people often get confused and think all flex apps will look like typical "applications" with combo boxes and grid controls, when flex can do whatever it is you want and can look however you want.

Jamie, just a thought if it helps you with your client, checkout the Target "gift registry" at any Target store if you're in the US, they are all Flex kiosks.

Hi Grant,

Stumbled across this post while trying to get my head around Flex/Flash/AIR.

I'm not a developer or designer but have dabbled in various things like php, java, html, css for a long time. I'm fairly "functional", IOW, just not technical as a true developer would be.

I want to come up to speed moreso on the development side than the design side of things so I can create rich web apps (along with cross-platform desktop apps).

Flex seems to be the way to go for the former and AIR the later.

If I'm understanding things correctly, the underlying thing I definitely need to get good at using is action script.

So here's my question:

If you were a newb starting over and looking to do what I am, what's the fastest way to learn to develop with Flex/AIR? I figure I can outsource the design side to someone else.

Would starting by mastering Dreamweaver CS4 be a good approach (since it can do at least some of the web/AIR stuff)...and then moving on to fully learning Flex/actionscript? Or do I just bite the bullet and learn Flex from the outset?

Interested in your thoughts about any sites, books, courses, etc. that you think would help me get from point a to point b fastest with the least amount of pain and frustration.

Thank you,

Bob

I would install flex builder the evalution copy of Flex, and buy two books, one to learn actionscript, the other to do real flex development (the api's that you would use to build flex applications)

Action script 3.0 -

http://www.bestwebbuys.com/Essential_ActionScript_3_0-ISBN_9780596526948.html?isrc=b-search

Flex development

http://www.bestwebbuys.com/Programming_Flex_3-ISBN_9780596516215.html?isrc=b-search

Thanks for hard working,Grant... This is a fantastic,useful,and unbelievable article. I'm a rookie in both flash and flex. I've been working on Asp.net on .NET Framwork for a long time. After I heard about Flex,I try to google some helpful informations about Flex and Flash. NOW,I really really know what it is...

Thanks,again

You're most welcome Nofortee

Thanks for hard working,Grant... This is a fantastic,useful,and unbelievable article.
I've been working on Java/j2ee for a long time. After I heard about Flex. NOW,I really really know what it is...

Thanx again to u..

You are very welcome Jayapal, I was a J2EE architect for about 12 years, I still do some JAVA for backend stuff, but do a lot more flex now. Good luck in your studies of Flex.

Hi Grant,

Very nice description. Good advice you gave in the comments.

I am glad to see there is a lot more activity on your blog this year.

I will have to look at pureMVC.

Thanks Martin, yeah I was slacking a bit least year too busy, now I make sure I make "time" :)

Hi folks,
The differences between the flex and flash has given very good.

From where did you get the 95% statistics of Internet users installing Flash Player? Please replay as I will be using this in my research paper.

Hi Sherwette, there are some independent companies providing stats like Forester group, but here is a link to adobe's stats that "could" be biased :)

http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

Hi Guru,
Thanks for the explanation. I'm a web developer of sorts but am new to both flex and flash. When I wanted to start, I got confused where to start. After reading this I know, i'd start with the trial version of Flex installation, a book each for flex and actionsript. Thanks again.

Hi Ginormous writer

I'm a Flash IDE developer, and I have grown to be very effective in the Flash IDE. I do my most complex animations and graphics using the Flash designer tools, and then use them in AS files I write using the same Flash IDE, where I can do anything web-based, including reading from large databases, working with complex XMLs, and all sorts of developer logic.

I recently started flirting with the idea of using Flex instead, but I didn't know much about it, so I got to your post. And as far as web based apps go, I can't really select what is useful to me from your presentation, which seems to be intended for people who have a hard time writing AS classes. How is the development part easier in Flex? And how was it hard in Flash IDE? Because you are wrong about the designer needing to know developer skills. Designing and developing are done separately in the Flash IDE.

And I'm a bit confused about AIR and FLEX. I understand that AIR is just a platform, that offers more features than regular Flash AS3 language? And that the Flex compiler can make full use of all the new features of AIR? Whereas Flash IDE developed SWFs only run on the Flash Player Runtime, which offers less methods and features. So I'm considering AIR = FLEX, and FLEX includes FLASH, in terms of available methods and predefined classes. Am I right?

Thanks

Hi Liviu.

I think the "essense" of working on flex to build flash player applications over the flash ide can be summarized as follows, but of course this is just my opinion/experience

* Flex has a real debugger, you can put in breakpoints, inspect variables, and pretty much do away with "trace" statements, its feels more like debugging a java or C3 application since the flex pluging for eclipse was designed for developers.

* The flash IDE on its own, doesn't give a "great" project level view when you have a lot of classes and files, you can add plugins to the Flash IDE to do this and you can use 3rd party tools like FlashDevelop, but personally I find the flex plugin for eclipse superior to these for developing actionscript 3 projects. Code completion in the flex ide is very well implemented, I also find its more verbose on error and easier to track down both syntax and runtime errors. I launch the flex ide with the debugger 100 times a day when developing and found it a much more efficient development process than I did launching a flash IDE project a reading trace or logging statements.

* As an example we just built defendthedome.com in flex. Our flash animator created all the Flash assets, including timeline animations where necessary, we converted these to Flash components for flex using the component kit extension for flash. We exported swc files that where then imported into flex and we instantiated them and used them like you would use a button or list box. We have over 100 flash components for the games that are as simple as buttons, to as complex as a driving game screen, doing it this way, made a fairly complex app managable. I've built very large apps in flash, and I found it more difficult to manage in the Flash IDE than in Flex Bulder.

* I also think flex is more familiar to a traditional programmer, there are programmers who are good at animation and there are animations who are good at programming but I don't think its common, and taking a traditional developer who does java or C# tends to find developing in Flex more natural than developing in the Flash IDE.

* The main differences between air and flex/flash is the api has additional features for local machine access, you have an embedded database to store complex data on the users machine ( so you don't have to store it on a server). To be honest air is not "hugely" different, its just additional apis, less restrictions than a flash player file, however there are more considerations in an air app than a flex app, like saving state of the app, e.g. browse for file dialogs, they should go back to the folder you last browsed, when the app closes should it save its layout?, Since you now have more access to the local machine, what types of hacks could infect your app and cause vulnerabilies or data loss. So Air opens another "set" of considerations rather than being necessarily different from flash or flex. One other thing is air can be authored in javascript instead of as3, for those more familiar with JS.

Well, that's more like it :) That's a nice set of differences for the more experienced AS developer. I must admit I missed in Flash IDE the FLEXibility of writing code and debugging like the one found in Visual Studio for example; there is debugging in Flash(with breakpoints and the works) but maybe it's not so easy to use. I still don't agree fully with your description of SWC compiled clips and how you were able to use them in Flex, because it's the same way they can be used in Flash AS files, and why I just love OOP ( game = new VeryComplexGame(); *smiles* ). But anyway, Flex seems to be what I've been missing in Flash all this time, especially that autocomplete, up to CS3 at least, I don't know about CS4, it was almost useless. I'm going to give it a go.

Thanks

The whole "swc" thing is basically that we can keep the "cool animation" from flash that is often timelined to make it "just so" and not loose that in flex. To me I find that developers are more efficient in flex, so even if you *can* do it in the Flash IDE, often its easier in flex. Word of warning, at first there will be things you hate due to moving to a new tool, but persevere, its worth it, I developed in the flash IDE for about 2 years and built a dashboard for role base authorization, I then worked on https://www.reebok.com/US/#/YourReebok in actionscript 2 with the flash IDE, mtasc and flash develop. I've been working in the flex ide for about 3 - 4 years and I won't go back :)

Thanks, this was a very clear and helpful discussion!

My main gripe against Flex is that it uses MXML. I code in pure Actionscript, using Flash to design graphics, so am I a Flex or Flash designer? Personally, I thought MXML added too many layers of complexity/child-handling gloves for hard-core coding. Then again, many people still use hard-core Flex, so maybe it's just me. :)


You can write in pure actionscript, only the app class needs to be mxml. We only use mxml for very basic layout and use actionscript for 90% of the code. You can also just code your flash app in flex builder without flex, since the debugger and profiler are so powerful.

Cheers,
Grant

Great Article on Flex/Flash.

I am not a designer or a programmer was just looking to educate myself.

We got several bids for a new website with conflicting Flex/Flash design proposals.

After reading your excellent Article now I know the difference.
Thank you so much.
Saleem

thank u, u r differentiated between flash and flex in the best way... any body release thier confusion in flash and flex.

Total awesomeness. Love the house-building analogy because it's what new stakeholders and small buisness owners can understand. Thanks.

Great article. Thanks! I'm a Technical Architect and new to the Flex/AIR world. This helped me solidify what members of our team should be doing what and gave me a nice perspective on Adobe's paradigm shift.

Hi I liked your note, add your site to your bookmarks.

thank u

The comments to this entry are closed.