I have a Flex project that I need to work on that using some mxml elements which I believe are charting related: Pie Chart, and some LineGraphs. Do I need to buy Flex Builder Professional to compile the project, or will Standard work? On a related side-note, the Adobe website is brutal.
I was going to use Eclipse with the SDK but the increased setup time and lack of code completion makes it not a contender in my situation.
If code completion and ease of setup are primary concerns, then I highly recommend you get Flex Builder.
The charting components are part of the Flex "data visualization" kit from Adobe. You need a license key for these unless you're happy to have a "trial" watermark rendered over the top of every chart your app displays.
Flex Builder Professional buys you the license key you need to remove the watermark.
No, you do not need to buy Flex Builder. You can do everything with notepad (or whatever your favorite editor may be) and the Flex SDK. Some may say it is easier to work within Flex Builder...but I am not so sure! And, yes, agreed, the Adobe site is quite the mess.
Download Flex SDK 3.4
Related
What differences are there betwee Flash CS4 and Flex, besides the GUI of Flash?
"Flex" isn't the application, "Flex Builder" is. That's important - "Flex" is a framework. Asking the difference between Flash and Flex is a bit like asking the difference between JavaScript and JQuery.
Flex Builder is an eclipse-based code editor that has built-in support for the Flex framework. The Flex Framework gives you a powerful set of tools for working with data - these tools are generally speaking not available in Flash.
If you're doing something really complex that deals with dynamic data, it might be worth considering using Flex instead of straight up Flash.
It gets a little confusing, though - you can use Flex Builder as your ActionScript editor in a Flash project. In other words, you still have the .fla but you do your coding in Flex Builder instead of Flash. The reason many people do this is that Flex Builder provides a much more robust code editor. For instance, you'll get code hinting for custom classes - which is an enormous timesaver if you're building something even moderately complex.
I hope that helps! Both Flex Builder and Flash are powerful tools, I'd recommend playing with both of them to get a sense of what you can do with each.
Flex is a programming environment, with a proper programming IDE like you'd find for Java. It's focused on software development - the fact a Flex app is compiled to a Flash SWF binary is almost irrelevant.
Flash CS4 is an art/graphic design tool. It allows you to do some coding, but this is focused on tagging code onto animations. It's a bit like how you can do coding in MSAccess - it's allowed but not the main focus, and the development tools are not at all geared at coders. In fact you have to learn how to even find the code in CS4.
Bottom line, if you are a programmer then Flex will seem natural. CS4 won't.
Flash is more focused on animation (comes with a library, etc.) and Flex is focused on web application development.
A nice article covering Flash and Flex can be found here.
Hmmmm...
It appears that charts are only available through the Flex SDK that comes built-in with Flex Builder. This is a problem, since I want to use Flex 3.3, and Flex Builder came with 3.2.
Eclipse is also ticking me off, and I prefer to use a different IDE (FlashDevelop).
Any way around this? And is there anything else that isn't included the the free SDK that I should be aware of?
The charts are only available with the professional Flex Builder plugin. If you have a FB license, however, there is no reason you can't use the libraries with FlashDevelop.
You can download the Data Visualization components from the Adobe website here: http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3sdk - It's the download at the bottom of the page, look for "Adobe Flex 3.3 Data Visualization Components".
However, even though you can download the components, you will still need a license to use them in your applications. The components will display a watermark over them unless a valid data visualization license is used when compiling with MXMLC.
As mentioned by riaflexer, if you need the Adobe charting components, you can download those from Adobe, and install them into your copy of Flex Builder - provided that you already have a license for the charting components.
However, if you're looking for charting and data visualization components that you can use with the free Flex SDK, you should take a look at the Axiis Data Visualization Framework. It's an open source data viz framework that can be used to create just about any type of charting component you could think of. Also, since it's built on top of Degrafa, it's fairly easy to customize the look of your charts. It's still in alpha, but it still seems to work pretty well so far.
The flex charting libraries have been made open source from roughly around the release of flex 4, as you can see from the announcement on February 19, 2010 here.
The memory profiler and automated testing tools are only available with the professional version. The test tools are still in their infancy, but they are looking better and better and every day, but are the only way to do unit testing of Flex apps.
according to Flex 3 SDK Release notes,
Flex Charting package enhancements – Flex 3 improves the Charting package with a number of enhancements. The axis system can now support multiple axes, and the DateTimeAxis allows for work-week filtering. A new data-oriented graphics API allows you to draw data coordinates, leaving the chart to render everything in its proper screen position. There are new formatting options and added interaction capabilities for all of the existing charts. Available only with Flex Builder Professional.
I was looking forward to doing Flex 3 using command line or FlashDevelop, but it seems not all features are covered.
You might wanna install Flex Builder 3, track it while it is installing to see what values it is adding to the system like registry entries, and then uninstall and remove those entries when doing uninstall... but that's too much work...
Why is there a watermark on my Flex charting applications saying 'Flex Charting Trial'?
There are actually two different licenses for FlexBuilder (and the plug-in): Flexbuilder Standard and FlexBuilder Professional. One is the base version, which will allow you to use most of the components, but there is a more expensive version which is part of the Flex Data Visualization component set. You can tell if something is in this license by looking for (Flex Data Visualization components only) in the documentation.
There are a number of workarounds to get rid of that TextField (which you can search for online), but the moral way is to buy the more expensive license.
You need to purchase Flex Builder 3. You are probably using the trial version which shows the watermark.
I even think you have seperate serials for Flex and for Flex Charting.
I've tried looking everywhere for a concise list of the advantages and disadvantages of using Flex vs. Flash.
Coming from a programming background, I absolutely love Flex. It's easy to pick up, and since it can use flash classes, why would I want to use Flash without flex?
Flex:
Pros:
good for RIA development
provides many user-input options out of the box
Build in lay-outing system
the MXML is easier for non-programmers
You can quickly combine components to create small applications
components can provide an advantage in large-scale projects because of their modular
nature.
can be developed using linux
has a nice component lifecycle for validation, etc.
Cons:
increases the size of your .swf
Customizing the look of components can take a lot longer than anticipated, depending on the visual style you're looking for
when you find out you need a custom component that doesn't exist, you might need to go back to Flash to do the real programming work and packaging of the component
The "flexibility" of Flex means you will be reading a lot of documentation
Bugs in the Flex framework
You eventually will need to compromise with the architecture of the Flex framework
Flash
Pros:
good for making movies/animations
Timeline can be easier for designers/animators to conceptualize
when working from scratch, provides a great deal of control.
easier for someone with a programming background
You can program whatever you like; no compromises with existing frameworks
Cons:
only provides basic user input (text box) out of the box.
timeline can be daunting for programmers (although you can quite safely ignore it)
Development of certain types of applications will be slower than with Flex
can't be developed using linux
user input validation must all be handled in the code. No built-in validation.
need to implement your own lay-outing system
Please correct me if I missed anything said so far.
Flash and Flex both use the same underlying rendering engine, just with different front-ends. Flash is better suited for making movies and animations. Flex is better for application development.
From a programmer's viewpoint, the big difference between Flash and Flex is not so much which IDE/application you use for programming, but whether you program in ActionScript (AS) only, or use the Flex framework and MXML to program your applications.
I would say pure ActionScript is better for programming (whether you use Flash IDE or Flex IDE is not that relevant), and MXML is better for non-programmers to combine the components programmed in AS.
I would add to your list these pros/cons:
Flex:
Pros:
Easier for non-programmers to get into application development
You can quickly combine components to create small applications
Components can provide an advantage in large-scale projects
Cons:
Customizing the look of components can take a lot longer than anticipated, depending on the visual style you're looking for
When you find out you need a custom component that doesn't exist, you might need to go back to Flash to do the real programming work and packaging of the component
The "flexibility" of Flex means you will be reading a lot of documentation
Bugs in the Flex framework
You eventually will need to compromise with the architecture of the Flex framework
Flash (or Flex IDE in ActionScript project mode):
Pros:
Easier for someone with a programming background ;)
You can program whatever you like; no compromises with existing frameworks
Cons:
Timeline can be daunting for programmers (although you can quite safely ignore it)
Development of certain types of applications will be slower than with Flex
In short: pick the right tool for the right task.
Flex is a library of code written in ActionScript3, so it adds lots of capabilities and standard-library-like stuff to Flash. The downside is that it a is a huges amount code that gets included into your application. If you use any Flex at all in your app, the download size of the SWF goes up by 100's of K.
If your application has any kind of user interface widgets, then you almost have to use Flex as Flash itself only has the most basic things like text boxes. Flex has a whole XML GUI with layouts, data binding and XML setup etc.
Doing that in flash, you end up having to write from scratch things like list boxes...
In my opinion, the most important feature of the Flex framework is the component lifecycle, which provides a really elegant model for validation/invalidation of properties, component size, and hierarchical rendering.
The benefit to developers is that it creates discrete application phases for business logic and rendering, avoiding expensive geometry & rendering code until the last possible moment before drawing a frame.
Here's a really good presentation, explaining how it works:
http://tv.adobe.com/#vi+f15384v1002
The model is so well-designed that the component lifecycle remains almost entirely invisible during the majority of Flex development, when you're using the framework default components and containers. You only need to learn the inner-workings when you start developing your own components.
Developing in the Flash environment, or in pure Actionscript, you don't get any of that. Anyone developing pure AS3 applications either needs to code very carefully to separate business logic from rendering, or will suffer severely decreased performance.
[...] why would I want to use Flash without flex?
Flex is a new product, whereas Flash existed from the Macromedia days. Designer, animators and most anybody who is not brought up on a staple diet of programming education will probably find Flash easier to master than most other such solutions.
Target is different.
Flex is more dedicated for programmer while Flash is more friendly to Artist / web designer.
Flash is the IDE used (generally) to create animations and things that work well on a timeline.
Flex works better for creating internet applications which have interactions more akin to a desktop.
Why use Flash? Well, if you need to do something more specifically attached to a timeline, of course!
I see Flex as more of a solution for doing RIA applications where you need to develop application based solutions. There's quite a lot you get right out of the box with using Flex but it also comes at a price in terms of file size, granularity, etc.
If on the other hand you are working on a totally custom solution such as a game then perhaps Flash is the way to go because you can start fresh with a blank canvas. Many people still use Flash because they don't need all the app based bells and whistles of the Flex platform.
I like the freedom of Flash, and its really simple to embed assets in Flash, a little more confusing to do in Flex.
One thing that I love about flex is the ability to make a fluid application with minimal effort. Which would take forever in Flash.
Anything you can do in flex you can do in flash, just may take a lot longer to do. You can't do everything in flex that you can do in flash though.
Flex takes care of all the UI programming for you and lets you focus on the business logic, with flash you will spend a majority of time programming the UI.
You can develop Flex applications under Linux easily but with Flash you simply can't.
Another solution that was not suggested at here, will be to use them both. You can add flex components to flash movie clips using ContainerMovieClip. And you can add flash movie clips to flex components using SpriteVisualElement. Another thing that wasn't mentioned was lay-outing your application. It will be flex pros against flash disadvantage, because you got build in flex lay-outing system. But again when you are using them both, you can layout your movie clips with flex lay-outing system.
Also flex become Apache top-level project. And it become more and more excepted by the community now.
Flash and Flex are 2 complete different things, one is a design tool with support for action script, the other one is a framework that also has action script but is maily built around MXML which is a XML based UI definition "Language".
What are the key differences between Flash and Flex? I have over five years experience with flash and feel very comfortable developing with it and ActionScript3. I find myself more and more curious about Flex and want to know when it is best to use flash or flex. Also, is everything that can be done with MXML, able to be done with AS3? I have a strong understanding of AS3 and OOP and would like to know the diffrences between using AS3 and MXML in Flex.
Flex is great if you quickly want to build a UI, you can mock up a functioning UI in a couple hours. Since it still can be limiting for some custom UI's it's not perfect for everything but if something should "look" more or less like an application and fit in a grid it's super quick to mock up the UI in MXML. Also don't be intimidated of how most Flex apps look (ugly, imo), you can customize everything or easily create your own components.
Putting actionscript in mxml is the same as putting css or javascript in html = really bad. Unfortunately even Adobe has this in multiple examples (probably mostly because it's easier & faster for demostrations).. My personal opinion is that this applies to bindings too, as i don't want to put my data in the UI (mxml).
As an experienced developer I'm sure you don't do any development on the timeline (to clarify the Flash = timeline misconception). Still with Flex you have the UI separated in a framework that handles a lot of the burden with layout so that you can concentrate on the business logic. The rest of the workflow is close to what you probably already have with Flash.
It depends on what kind of applications you are developing now with Flash. I have been a Flash developer (mainly applications) for 7 years. I must honestly say that I was extremely glad when Flex 2 was released because it had the component framework (good components, layout managers, ...) I did not have in Flash. This is IMO the biggest difference between Flash and Flex (or the Flex framework).
MXML is a real blessing, especially when using data binding. In the end, everything is compiled down to ActionScript (check the -keep compiler option), but MXML just saves you so much time.
Flash and Flex provide different ways to produce different things. I am not familiar with Flash, but I would expect that it is dependent on a time-oriented way to produce something, whereas Flex is geared toward more traditional software development. That is, rather than dealing with time and frames in Flash, one is dealing with describing where components should be placed with MXML and how those components work with ActionScript.
One should also be able to write a Flex app with just AS3 and no need MXML.
The main difference between AS3 and MXML in Flex, as far as I know, is that MXML is not intended to be used with application logic, but rather it is intended to be used like HTML/CSS in web pages and puts components and content onto the Flex app. ActionScript is used to program behaviors, components, and other things outside or what MXML does. Thus, if you want to attach an event to a component one would write ActionScript code.
Hope that helps. I am still learning about Flex myself.
Some other differences that come to mind:
Flash allows you to create graphical assets and then work with them immediately. To use those same things in Flex, you need to use Flash to export them to a swf or swc first.
Flex has a layout manager, so applications that have variable window size are waaaay easier to make. For instance, you can take a window and set it to 90% width of the window, and it will change size... not scale mind you, but actually change its width as the window is made larger or smaller. This is not easy outside of the Flex framework.
Data Binding in Flex is a huge timesaver. It essentially creates all of the code you'd need to write in AS3 by simply saying blah="{foo}" The curley braces denote "bind to this".
The Flex Debugger is vastly superior to the Flash one. There is also a Profiler.
Since I started with Flex and not Flash, I'm not sure what kind of IDE is best for Flash dev, but the Eclipse based Flex Builder is quite nice. The code hinting is great. Subclipse integration is great.
Really, Flash and Flex are different beasts. You should know and understand AS3 if you want to use Flex, and since you do, you're in a perfect position to take advantage of Flex's features. Flash is not going anywhere as a tool for making more visually creative pieces, but Flex offers a lot of advantages for application development.
I prefer Flash IDE vs Flex (aka Flex Builder aka Flash Builder for my comment)
In general i would say it depends on the size of the project.
I find it easier to start and finish small projects quickly in Flash.
I would advise Flex for larger projects because it has various debug tools that can save you plenty of time (although i would still just use Flash my self)
But maybe if you really get used to flex, that might not matter.
some Cons of Flex from my experience.
When working on a team of 4 on a
large project, Flex failed to keep
the project
settings from one computer to another. (we shared files using SVN)
Flex constantly conflicted with SVN for us.
I felt distant from the art assets.
some Pros of Flex
being able to follow variable references from one class to another at the click of a button.
being able to easily see many variables while debugging. w/o needing to trace them.
and Flash used to not have Custom Class Code hinting, but now with CS5 it does.
I think you can use the newest features of Flash Player w/o waiting for a new Flash CS#, for example MoleHill (a new 3d api that uses the GPU) has a beta release out right now. and i think the Flex SDK can already use it.
hope this helps.
it should be noted that I am a rare case that doesn't prefer flex, most people strongly prefer flex, so you should give it a try at least.
MXML compiles to action script so it's really like a higher level version of that. So, yes, everything that can be done with MXML can be done with actionscript (but not the other way around).
Flash CSx:
GUI\Layout: Basic GUI class framework
Graphical Content: Great for editing graphical library objects with or without animation
Code: Lacks a good code editor
Flex/Flash Builder + Flex Framework:
GUI\Layout: Advanced GUI class framework and layout engine (Flex)
Graphical Content: Lacks drawing capabilities of Flash, but you can include Flash generated graphics by exporting them for ActionScript into a SWC and importing/referencing the SWC in Flash Builder.
Code: Much better code editor than Flash; not sure if it's on par with FlashDevelop
Other: Supports MXML, which is basically just another style of laying out content. Instead of writing a bunch of "c = new C()", "c.prop = x", "c.addChild"... you can structure display objects and thier children using XML constructs, and the MXML compiler will convert it all back into the less-readable, but basically the same AS3 code.
These technologies are all related and interoperable. They are natural and predictable extensions of the Flash player and ActionScript techonolgies, but for some reason Adobe developed the Flex/Flex-builder/MXML technologies as a totally separate product, and market it as something totally new and oh-so-amazing. Whatever. So now we have to go back and forth between the two to use all the features, which is LAME. They also have to waste time and resources developing unnecessary, but helpful, packages like the "Flex Component Kit" to reduce the number of steps necessary to get Flash content into Flash Builder.
You have to go back and forth between these applications, because of their mutually exclusive features -- Flash Builder lacks graphics editing, and Flash CSx lacks MXML and a good code editor -- but they're interoperable in the sense that you can use Flex classes in Flash, Flash classes (and their embedded graphics) in Flex, you can use Flash Builder and MXML without Flex, etc.
I think they need a single, truly integrated Flash IDE, so they need to merge Flash Builder into the Flash CSx editor.