If there was one area of Flash that is more controversial than 3D engines, it would have to be tweening libraries. I have recently seen some people on Twitter saying things like “Lee Brimelow now recommends gTween” and “I thought he used Tweener”. I also get a lot of emails asking for my advice on which is the best and fastest engine.
Since I started my tutorial site, I have used many different tweening engines to accomplish programmatic animation. I think the first engine that I used was Moses Gunesch’s awesome Fuse Kit. I was really disappointed to learn that there wasn’t an ActionScript 3 version when I finally decided to move to the new language. What was unique about Fuse was the way you could build up a sequence of tweens and have them run one after another. You can of course do the same with any engine using delays, but Fuse made the code much more readable. Moses is actually working on a new project for doing tweening called the Go ActionScript Platform.
Besides Fuse, I have also done a tutorial on Tweener, which was the first engine I used for AS3. The code is extremely simple to use and seems to run smooth for everything I have ever needed it for. It was developed by Zeh Fernando who is a very well respected member of the Flash community.
The next engine that I used was Jack Doyle’s TweenLite and I subsequently wrote a tutorial on using it for Layers Magazine. The word on the street was that this engine was the smallest and fastest around. This seems to indeed be the case after talking to many people in the community. But all of the differences in speed between these engines really only becomes apparent when you are animating thousands of objects. Most all of these engines will work similarly for most everything you’ll use them for.
The newest engine on the block is gTween which is being developed by Grant Skinner. He has just released beta version 4. It has a more traditional syntax compared to most engines as it doesn’t center around using static methods and also has a cleaner event model syntax as well. The first thing that drew me to it was some of the special features like smart rotation, which automatically finds the shortest route to a destination value. Another thing that is appealing to me about gTween is that fact that Grant is writing it, so I’m confident things like garbage collection will be handled correctly.
But the main point I want to make with this post is that you can’t go wrong with any of these engines. They are also similar enough to one another that moving between them is a piece of cake. In the end it comes down to which engine has the syntax that you prefer. Try them all and find that one that works for you. Also remember that to do a simple programmatic tween you can always fire off an enter frame event and kick it old school .