I'm currently working on new animation capabilities for the next release of Flex. We have some great stuff in there already, such as the effects infrastructure and state transitions, but I'm rounding out the functionality and rethinking some of the APIs to make the system more powerful and usable by both tools and developers.
For my effects work, I'm mostly concerned about Flex developers because, well, that's what the library is for.
But it occurred to me, through conversations and through random web perusals, that an animation system that could also be used outside of Flex might be interesting to the people doing ActionScript3 applications without the Flex framework, or to people doing both Flex and non-Flex AS3 programming. It also occurred to me that much of my code was Flex-agnostic. Of course, the code that is tied to Flex effects and transitions is necessarily dependent upon Flex, but the core animation engine really doesn't care what it's animating or how; it's simply varying values over time.
So I took a pass over the code to make it truly Flex-less, which involved removing a total of like 5 lines of code from my existing classes. I also added a class called ObjectAnimator
, which is a simplified version of the new Flex Animate
effect class.
But probably more interesting to the people reading this, I am putting out the results here as something for people to try out.
Caveat: (I love using the word Caveat. For one thing, it's a great hedge. But also, it's the only Latin word I know and surveys show that people who speak Latin are smarter. Except the Romans, when they let their city get overrun and their empire trampled) This is not a released product, either from Adobe or from me. Instead, it's a technology demo that shows you what the new Flex animation system does. My main focus is, and should continue to be, making Flex animation rock, which means that I can't spin up effort supporting an animation library that's a separate entity. Having said that, the code that I'm delivering here is about a 99% (taking a complete guess because I don't want to bother diffing and counting lines of code) copy of the code in Flex, so it's not like this is just some random code project spew.
There are various reasons I'm doing this:
- Nice guy: This is just another example of what a great guy I am. A real pal. Your source for fun code and good CPU times.
- Feedback: I'd like to get people, especially animation-savvy developers, interested in what I'm doing for Flex and giving me some feedback on things they think I'm missing, or things they would also like to see, or problems that they are having. I don't want Flex to be a constraint that makes it hard for those people to check out the animation code and play with it.
- Share the wealth: If the stuff I'm doing for Flex can be useful in other Flash contexts, great! As I said, my main focus needs to be Flex. But if I'm doing generic work that can be used elsewhere in the Flash world, that's okay by me.
Demos are usually good, so here's one:
8 comments:
Really cool!
Hello Chet,
Your animation library looks great. This, the recent release of GTween by Grant Skinner & other animation libraries obviously shows that programmatic animation in Flash is still a hot topic.
I don't know if you're aware of Moses Gunesch's efforts to unify ActionScript animation? If I remember correctly, it was just a little bit to late to incorporate his plans into Flex 2, (see http://www.goasap.org/faq.html). However, I strongly believe this should be considered for Flex 4 as it seems that the animation, effects & transition framework is being rearchitected. I see this as a huge opportunity to set a well-architected foundation for future animation platforms in Flash & Co and suggest you & Adobe should get in touch with him.
Regards,
Daniel
good post
hey chet,
i've been using flexy in some of my work lately, so i've been wondering about its future release plans. will it always be available independently, as its own .swc, as it is now? or in the future will we have to pull it out of the flex framework? will it always be usable in both flex and flash authoring? will there eventually be a more official separate site for flexy downloads and docs?
thanks!
colin
Colin:
At a minimum, I plan to update Flexy to take on some fixes and changes I've made to the Flex version of the classes. I would have done that already, but product deadlines have kept me focused on Flex recently.
Beyond that, I don't have specific plans. There is no plan for Flexy to be a 'supported' product. I would like to see it used or useful in other contexts beyond just in Flex, although for now it's meant more as a demonstration of what we're doing in Flex (and, if it's useful, as something you're free to use on its own).
The main issue for me is that I've got a lot of stuff to do for Flex itself, and I don't want to get side-tracked on other projects at the risk of not getting to the Flex features I have to get in for the next release. If I can enhance Flexy in the meantime, especially by simply releasing updates to the classes that I've already changed in Flex, then I'm happy to do it. Beyond that, any focus on Flexy will have to wait.
But in the meantime, I hope you've found it useful. If you see things lacking or that you would like to see changed, feel free to let me know about it. That was one of the main reasons I posted it, because features that would be useful to you might be useful to others and could be considered for changes in the core Flex version of the classes.
interesting. so the "official" way to use the services offered by flexy will be to use the flex framework? are the two apis identical? what about the flash authoring crowd? will they be able to use the flex framework too?
given that there's no official commitment to flexy, would you say it's correct to consider it simply "experimental"? should it, therefore, be avoided for commercial production quality code?
ideally i'd love to see the entire flex framework usable in flash. even if that never becomes a reality, i'd still love to see as much of the framework as possible separated out for use independently. (that's what i hoped the model for flexy.swc was...)
Just stumbled across this and it sounds pretty awesome. I definitely respect anyone going out of there way to share their works with the public, so kudos to you. I'll have to do some further digging to see what became of this (the post is a year old), but I'm sure I'll find it. Thanks for sharing, hope things went well.
@Porter: Hopefully you can use what I've put here, even though the post is old. In the meantime, I have a more recent version of this library, more in line with the current codebase that we have in Flex 4 (some classes have moved around, some APIs have changed a bit, some functionality was added). I talked a bit about it at the end of my MAX 2009 talk (a link to that talk is in a recent blog post). I hope to post that version soon.
Post a Comment