Wednesday, November 12, 2008

min(MAX)

Besides furiously hacking new effects logic for future Flex releases, I'm also busy getting ready for the Adobe MAX conference next week. I'll be giving a talk on Monday evening, so if you're interested in effects, and in 'Filthy Rich Clients' capabilites of Flex in general, c'mon along to that talk. But there are several other talks that should also be interesting to Flex developers that want to know where we're taking the platform and how to take advantage of rich graphics capabilities of Flex.

Note that I'm not trying to highlight all of the cool and useful talks at the conference: there are plenty of other talks on Flex3, introductory and advanced, and other related technologies such as Flash player 10 and new graphics capabilities such as Pixel Bender. I'd encourage you to check out the conference schedule for those other talks.

Here is a [small] sampling of the talks that I'm interested in attending (especially "Filthy Rich Flex Clients". It would be tacky to miss my own talk):

Monday/Tuesday Keynotes: These keynotes should cover a lot of interesting and related technologies. These should be a great place to see what's coming, and what we'll be talking about in greater detail in some of the sessions and labs.

Monday 11:30-12:30: Looking Ahead to the Next Version of Flex
Ely Greenfield (Flex architect) will be giving an overview of the new component model we've been working on, along with a host of other improvements and new features. This should be a great place to get a quick take on what the next version will do for you.

Monday 3:30-4:30 (or again at 5-6): Introduction to Thermo and the Next Generation of Flex
Steve Heintz (Flex tools Product Manager) and others will be previewing and discussing early versions of Thermo and FlexBuilder. For folks interested in these tools, this should be a great talk. But go to the 3:30 one, because you'll want to save your 5:00 slot for...

Monday 5-6: Filthy Rich Flex Clients
This is my talk. Actually, it's about three talks in one. The main focus of the talk is the idea of 'Filthy Rich Clients', which are techniques that you can use to create better user experiences. But along the way, I'll be talking about the graphics and animation capabilites of the current platform (Flex 3), and also covering some of the new Effects capabilites that I've been working on for Gumbo. Since I only have an hour, I may need to either move very quickly or simply give different sections of the talk in parallel (I haven't worked out how to do this yet, but it will probably involve a <Parallel> tag and a new <FxChetPresenting/> effect). Either way, it should be a lot of information, with lots of demos, code, and whizzy stuff.

Tuesday 1:30-2:30: Creating New Components in Flex 3 and Beyond
Deepa Subramaniam (Flex SDK team engineer) will be talking about how to create custom components, including showing how to do it with the new, more flexible component model we have in Gumbo.

Hope to see you next week at the conference...

Monday, November 10, 2008

Video: Custom Flash Graphics

Adobe TV has posted my final Flex in a Week video. This one is on the use of Flash graphics objects in Flex applications, covering both drawing directly into the Graphics object for custom rendering in your updateDisplayList() method as well as creating and adding Flash shapes to your components. (Note that you have to have a completely cusom component, subclassing UIComponent, in order to add non-component children such as DisplayObjects or Sprites to the child list of your component; other Flex components only understand Flex component children).

It's not terribly advanced, but is meant more as an introduction to some of the graphics basics, including Flash's use of retained mode rendering and why you always need to clear() the graphics display list.

The source code for both examples is available here.

Monday, October 27, 2008

Flex Specific[anim]ations Posted

We've just posted a couple of specifications on the Flex open source site about the new animation work going into the next release of Flex ('Gumbo'). Check them out if you're interested, and give us feedback if you have any suggestions (on the forums if you'd like, but I'd be happy with comments on this blog as well, since I'm all about the new effects for this release).

The New Effects spec discusses the new animated effect base class, FxAnimate, along with several subclasses that implement the new effects. Many of these effects should look familiar to those already using Flex (FxMove looks an awful lot like Move, FxResize is strangely similar to Resize, etc.). The main change is that the new effects will act on both components (like the old effects) as well as the new graphics elements (which the old effects don't handle, as discussed in the spec). In fact, targets of the new effects could be any types of objects at all, although many of the effects do assume particular public properties (such as FxMove assuming that the target has "x" and "y" properties). For example, FxAnimate can be used to animate an arbitrary set of properties on the target, with no assumption of what type it is.

There is also a fairly big change in the Effect internals, in the way that FxAnimate actually changes properties, and in its use of the new Animation class, which is discussed in ...

The Arbitrary Type Interpolation spec covers the new Animation class, which is basically a rewrite of the old Flex Tween class. It changes the way that time and value are eased (splitting the old 'easing' process into separate time-interpolation and value-interpolation steps), which allows both more flexibility and the ability to animate properties that are not simple Numbers. One example of this capability is seen in the new ColorInterpolator class, which is used in the new FxAnimateColor effect covered in the first spec above.

Intrepid readers will notice that these specs, and the underlying code, bear a remarkable resemblance to the Flexy library posted here a few weeks ago. Barring some name changes since then and other small API tweaks, the functionality is exactly the same. The capabilities exposed in Flex are greater than those in Flexy, in particular at the higher 'effects' level, because Flex can perform more work when it knows what it's animating (so FxMove can query the state-transition system to automatically derive from/to values, for example). But the underlying classes (especially Animation and the interpolation and easing classes) are the same between these projects.

Please check out the specs, check out the code, play with it, and let us know what you think.

Note that the APIs, and the specs, will change over time to reflect more API modifications and additions. But the essential ideas of the effects architecture are in there and ripe for building upon.

In the meantime, I'll be working on more functionality for the effects system. Ideally, I would be writing some blogs and demos about all of the new stuff now, but I'm focusing on getting stuff working for MAX now and can't take a break for demoing the goodies just yet. They call them deadlines for a reason (make it to the finish line or you're dead). I'll definitely have some stuff to show at MAX in late November, however, and also at Devoxx in Antwerp in December, and will certainly get around to posting some blog entries on it after that.

Wednesday, October 22, 2008

Video: Glow For It

Here's another Adobe TV video in the Flex in a Week training series. This one's about using Flash filters in Flex applications. Specifically, I discuss instantiating and animating a Glow filter on a button, but the techniques discussed are applicable to using filters in general. The source code is fairly self-explanatory, but feel free to grab the two files I cover in the video: GlowingButton.mxml and AnimatedGlowingButton.mxml. Glow ahead, check it out!

Wednesday, October 15, 2008

Video Time

Here's another video to watch, on some of the details about using the Flash Timer. I shot this video as a part of a just-posted series for the Flex in a Week training shows. This is the same topic and application that I cover in my earlier Time's Up blog entry, but in video form. It's so much more dramatic this way. And video seems so much more fitting for the material. I'm talking about time, after all, so why not cover the topic using time-based media? It was either this or a song, and I thought I'd save you that torture.

Wednesday, September 24, 2008

And Now, a Word from Our Sponsor

Codedependent is my technical blog, where I focus purely on geeky things. No idle chit-chat (or chetchat, even), just code, demos and technical stuff. But I may occasionally break ranks to mention something when I feel it's potentially interesting to folks reading this blog. Today, for example, I feel compelled to mention that I've just published a book of material pilfered from my humor blog, called When I am King.... The book is a collection of articles that I've been writing for the past couple of years. I haven't actually ascended to the King's throne yet, but at least I haven't been throne out, either. In any case, I have been able to write about the matter instead, which is probably more enjoyable (for everyone). Anyway, if you're interested in another side of my writing, check it out. Now, back to our regularly scheduled technical programming...

Monday, September 15, 2008

Video: Sorted Details

I shot a video tutorial recently of my Slide Sorter demo (which is also covered in this earlier blog entry), and it just got posted on Adobe TV. Here it is:
To see the running demo in action (which is better than a static picture of the demo, which would be the demo inaction), as well as the source code, see my earlier Sorted Details blog entry.