views:

655

answers:

11

I just got started using Adobe Flex SDK. I was very excited because it's the first time I've found a good, free way to create Flash applications. But then I noticed something: Flex doesn't seem to be much about making animations or designs. It seems more like an application to build forms and menus and the like... which I can already do in (D)HTML.

What features does Flex have that make it better than HTML in some cases?

Also, are there any techniques/software programs that would allow me to add the flash/design components that I mentioned earlier?

Thanks!

+4  A: 

Flex, like Silverlight, is marketed for the creation of something called RIA = rich internet application. The idea being that (D)HTML isn't really well-suited to create large-scale, well-responding applications on the web. I'm not sure whether this is really (still) true but historically, it fits.

Flex and Silverlight attempt to correct this by providing two things: a different, extensible technology along with a large library and an adapted toolset for the creation of applications. The disadvantage in both cases is the dependency from further (non-free, non-standard) components. The advantage is a potentially much more productive workflow and better performance.

Konrad Rudolph
+1  A: 

Flex is a layer on top of Flash, and was designed from the ground up for building applications. As such it has very powerful capabilities when it comes to interface construction and data manipulation. If you are interested in movies and animation sticking with Flash is more appropriate.

The advantages of Flex over DHTML (AJAX) include:
- Faster prototyping
- Better cross-browser support
- Better support for data management
- More "serious"
Disadvantages include:
- Stuck with a single vendor
- Requires the Flash plugin
Garth
to be fair, as far as your last disadvantage goes, like 95% of users have the flash 9 plugin, and the remaining 95% aren't necessarily opposed to installing it.
matt lohkamp
"Seriousness" of technology is subjective. You can create pretty serious GMail in DHMTL/AJAX and you can create flashy toys in Flex.
porneL
A: 

As stated above, "Better cross-browser support." That's probably the biggest factor right now for me.

A few more...

  • It's a lot easier to get "pixel perfect" designs in place.
  • It's really easy to integrate Flash content into Flex. Which makes it easier to work with designers.
  • Actionscript is better than Javascript (go ahead and flame me!)

There aren't any really good alternatives to buying the Flash product for making timeline based animations.

The bad sides:

  • Sometimes, html is just plain easier / more powerful

Make sure to pick the right tool for the right job. Sometimes DHTML, sometimes Flex, sometimes Flash, and many times a combination of those.

Marc Hughes
keep in mind while referring to 'as stated above' that the default view for comments is in order of votes - which means the one that was above yours when you posted might not be the same later.
matt lohkamp
+1  A: 

You can do audio and video in Flex/Flash vs DHTML.

Some more details and comparisons are in this The Top 10 Things You Should Know About Flex article.

Swaroop C H
+1  A: 

If you're interested in leveraging the graphics potential of Flex, why not go check out Degrafa which is an open source graphing and general graphics api. It's pretty cool, very well documented, and quote - "Adobe has asked if the Degrafa team would consider helping directly contribute to the Flex Graphics open source effort." - which they are!

It's not just all about charts and graphs.

defmeta
+2  A: 

Flex has a cohesive component model, and the basic building blocks were designed to support applications. HTML, on the other hand was designed for displaying text, and the DOM is a sorry excuse for a component model -- and it was most definitely not designed with applications in mind.

There is a plethora of JavaScript libraries that try to implement a workable platform on top of the DOM, and to even out the differences between browsers. While these work fine in many situations most of them don't come near the richness of the Flex component model, or even the more basic Flash API:s.

However impressing libraries like Dojo, YUI and jQuery are, they are limited by the platform, and it is limited indeed. Flex has all the benefits of the Flash Player platform, like vector graphics, remote objects, video support, cross-domain loading, sockets, font embedding, etc. but also a very good component model, data binding and skinning capabilities, to name but a few. If you're writing rich internet applications Flex is as rich as it gets.

Theo
+1  A: 

Just a quick clarification - to be clear, Flex is built on top of Flash. What that means is that anything you can do in Flash, you can do in Flex when it comes to programming. Flex Builder does not come with any tools that let you make animations with timelines or vector art or anything like that, but all of those elements are still usable provided you have the tools to make them elsewhere.

Flex is really about bridging Actionscript 3 as a language and Flash as a runtime into an environment where application programmers can feel truly comfortable with it.

Aaron
A: 

What you're talking about is Flash versus Javascript. Flex is Flash, DHTML is Javascript.

Flex allows for rapid prototyping, an alternate IDE for building Flash .swf s, and fits nicely into Air - Javascript only runs in browsers, includes less animation support by default (although there are plenty of well-established libraries that provide that functionality) and doesn't require a plugin to work.

matt lohkamp
A: 

Also with Flex you don't have to deal with JSON, XMLHttpRequest, compatibility issues and the likes... Everything works like magic.

Nadav
A: 

The most obvious is the horrible default Flex loading bar. It's a dead give away of an application without a sense of design.

eric
A: 
  • Unless you need a lot of animations, HTML will feel more lightweight than Flex.

  • No "loading" screen.

  • On OS X performance of Flex is abysmal. Even DHTML animations are faster! (see GUIMark).

  • HTML has wider compatibility than Flex. It may not be as easy as writing for single implementation from single vendor, but OTOH you're not limited to that single implementation:

    • No problems with iPhone or 64-bit Linux.
    • With graceful degradation basic functionality might even be accessible from Lynx or BlackBerry browser.
  • HTML is better integrated with the browser and OS:

    • Form elements can have native look'n'feel.
    • Text has preferred type of anti-aliasing, no problems with ClearType.
    • Keyboard shortcuts, context menus and text selection work as expected.
  • Browser extensions can improve DHTML apps, but Flex is impenetrable.

  • Accessibility tools have better support for HTML.

porneL