I'm not 100% certain about academic versions, but you can request a Flash Builder 4 beta 2 extension serial number from https://freeriatools.adobe.com/flashbuilder4beta/ (assuming you have an existing Flex Builder 3 serial number).
I'm sure that will work -- thank you! I had another question about the
official release of Flash Builder. Do you think it will be before February
2010? I understand that might be top secret, but I'm just trying to get an
idea on what I should do about my project.
To give a little history, I need to take advantage of the animation effects
in Flash Builder, specifically 3D rotation about the y-axis. I saw a demo
that Chet Haase did and it appears to be exactly what I need. Is it
possible to do the same or similar using Flex Builder 3 (it would be much
harder, I'm sure). I am also wondering if I can apply the effect to an
object I create on my own or does it have to be on a component that's
already defined in Flex?
If there is someone else I should direct my questions to, please let me
1 person found this helpful
Flex 4/Flash Builder 4 should be released in early 2010 (I don't know specific dates, but I couldn't mention them if I did).
As for animation and effects, I believe the 3d rotation basics are in the Player APIs, so it may be possible to do that in Flex 3 (targeting Flash Player 10), but it would be a lot more difficult without the efforts of Mr. Haase's new animation work in Flex 4. And I believe you can apply the effects to your own custom components as well, but I haven't personally tried that yet.
1 person found this helpful
There are a couple of different parts to the question, let's see if I can tease them apart:
- FlashBuilder and Flex 4: You can get Flex 4 apps to build in FlexBuilder3. It's not trivial (basically you need to load a different SDK into the IDE and tell it to use that one instead of the built-in one), and it's not a supported configuration, but it can work for basic editing/compiling.
- Flex 4 and 3D: As Mr. deHaan points out, the 3D capabilities/proprites exist in the player itself, so you can certainly write a Flex 3 app that manipulate those properties. For example, you could use AnimateProperty to change the y rotation property of a flash display object.
However, Flex 3 components do not expose the 3D properties that you would want to manipulate (z, rotationY, etc.). We don't assume Player 10 APIs until Flex 4, so you'd have to do a bit more work to get at the 3D properties in a Flex 3 app.
And if you're writing 3D manipulation functionality from scratch (not using the effects), you'll have to handle some of the situations that effects handle for you, like rotating about an arbitrary transform center or the center of the object, or combining different transform effects to avoid clobbering ones running in parallel.
- Assuming the previous point has scared you off of using Flex 3 for this stuff and you're back in Flex 4 SDK land, you can certainly animate custom components using the new effects. However, the transform effects (2D and 3D) assume that the target object is either a UIComponent (which all of our components/containers and most custom components are), a GraphicElement (one of the new graphics objects in Flex 4, like Rect, Ellipse, etc.), a SpriteVisualElement (which is what the compiled FXG files come in as) or a UIMovieClip (our video component). All of these classes have the necessary transform functionality that the transform effects use. So if you're custom component subclasses from one of these, you're set. But if you're subclassing Sprite or some other class, then the transform effects will get very confused trying to transform it.
Hope that helps...
Thanks, Peter and Chet for your help. It sounds like I want to take a
chance on Flex 4. I have been trying to figure out how I could do these
things for some time, so I'm glad Flex 4 will make it easier. I read I
could install both Flex Builder and Flash Builder on the same machine
without problems (not running at the same time, though), so I might have two
different versions of the same project for awhile.
I have one more little wrinkle. That is, I am hoping to apply effects to
irregularly shaped objects. Looking at the documentation, it doesn't appear
that the objects mentiontioned below that I could subclass can be
irregularly shaped. And by irregularly shaped, I mean polygons that
have all straight lines -- no curves -- but are not the traditional
rectangle or triangle.
Something that comes to mind would be to apply the effect to a bounding
rectangle. Only the irregular polygon would show, but under the covers
there would be a rectangle.
Do you have any pointers on this?
I have both FB3 and FB4 installed on my machine and have used both. There are probably issues with project files being incompatible between the tools, but the code itself should work (assuming you have FB3 set up to build using the Flex4 sdk).
There is no problem animating irregularly-shaped objects. The only issue you might have is if the transform center you wish to rotate around is not the true center of the object as measured by its width/height. If that's the case, you can either group it in a larger container that positions the center appropriately (as you suggested) or set the transformX/Y properties on the effect to hard-code the transform center instead of having us set it with the autoCenterTransform property.
As far as I know (and I could be wrong), Flash Builder 4 can open Flex Builder 3 projects, but not the other way around.
But yes, I currently have Flex Builder 3 standalone and Flash Builder 4 beta standalone installed and haven't had any problems switching between the two.
If I implement your second suggestion (I think this is assuming that I would
not use the bounding rectangle)...
Could I extend from UIComponent and then give the shape the coordinates I
wanted it to have? It seems all the UIComponents are rectangular. I'd want
to determine the shape and the location of the object on the fly based on
use input and then rotate it.
I think you haven't yet drunk the koolaid of Flex 4 components. Depending on what you want your component to do, you could probably just use one of the standard components, but create a new skin for it that has the graphics you want (rectangular or not - you decide). For example, check out ButtonSkin.mxml to see how we define the look of the standard spark button. You could take that skin and modify it to have your own custom button look and shape, then use a standard spark Button, but specify the skinClass property to point to your skin file.
Oh my. I'd better get some of that Koolaid! I will take a closer look at
spark. Thanks very much!