First I wrote my own tweens, and then I used Tweener.

Tweener changed my life, but compared to modern libraries it *is* slow, so I kept shopping.

I decided to build "GTweener", which acted like Tweener, but used GTween as the core. My big beef with most libraries at the time was no global control, and no overwrite support. I love the "set it and forget it" simplicity of Tweener. I used to break many other Flash websites by clicking things too fast, getting the tween instances all tangled up. I never had this problem with Tweener.

I found BetweenAS3, which was even faster. Faster than GTween and faster than TweenLite. I restarted with "Actuate", which extended the same philosophy as GTweener, but with an interchangeable core. It supported TweenLite, TweenMax, Tweensy, BetweenAS3 and Tweener interchangeably. You could create one tween using BetweenAS3, then switch to another library when you needed a different feature, or worse, when it didn't act as expected.

BetweenAS3 works very quickly when reusing objects or tweens. It uses more memory, but works great with thousands of the same objects.

However, unless it has changed, it has no overwrite support, and was dodgy sometimes at handling a sequence of tweens for the same object. For example, the "start" property for each tween was cached the moment the tween was created. If, however, that property changed during the delay before the tween began, it wouldn't respect it. The worst is when you wanted an object to, say, fade in then fade out. The first tween would go from alpha 0 to alpha 1. Cool. The second tween would go from alpha 0 to alpha 0, because the start was cached. It took me a while to figure out what was going on there :)

I began an experiment ... would it be possible to create a bare-bones, super simple tween engine for normal tweens? No special features ... just pushing numbers around. Eventually I built an engine that's faster than TweenLite, and comparable to BetweenAS3's performance in many ways ... in some ways better.

One of the advantages of Actuate's structure is that it *does* support multiple engines. If you want an ultra-special tween, you can extend the standard tween engine to add support. 99% of your tweens run just as fast as ever, then your special tween runs a bit slower so it can do the special feature you need. Other libraries, like TweenLite, slow down as more features are added.

I also hated "special properties", and wanted better auto-completion support.

Here's an example of the difference:


TweenLite.to (MyObject, 1, { x: 100, y: 100, alpha: 1, onComplete: trace, onCompleteParams: [ "Hello World" ], delay: 4, ease: Expo.easeOut } );
        
Actuate.tween (MyObject, 1, { x: 100, y: 100, alpha: 1 } ).delay (4).ease (Expo.easeOut).onComplete (trace, "Hello", "World");


Using TweenLite (or most libraries), your tween properties are all passed in a generic object. Not only can it be wasteful for performance (strongly typed performs much better), it also means you need to memorize the "special words", and may conflict with the names of the properties on your object.

Instead, Actuate expects a generic object for your tween properties, but that's all. You can then chain properties like jQuery, adding delay, a custom ease, snapping, rotation, repeat, reverse, onComplete and other properties at the end. It's all strongly typed and works great with code completion ... and its even faster than TweenLite.






On Sun, 05 Sep 2010 08:36:04 -0700, Michael Iv <[email protected]> wrote:

Those Japanese are serious folks ;)

On Sun, Sep 5, 2010 at 6:33 PM, John Brookes <[email protected]> wrote:

BetweenAs3
http://www.libspark.org/wiki/BetweenAS3/en

Examples
http://wonderfl.net/search?q=org.libspark.betweenas3


On 5 September 2010 15:56, Clark Stevenson <[email protected]> wrote:


Hi Michael,

Between engine?

Its a bad name for a google search but im interested.

I never got into Tweenlite etc because i had already gotten used to
Tweener and its forfilled every purpose in the last 2 years. Im always happy
to check out new things though.

Clark.


On 12 August 2010 18:13, Michael Iv <[email protected]> wrote:

I recently checked out Between engine . Must say , very impressive lib.
Some of the features are non existent in any other tween framework .

Sent from my iPhone

On Aug 12, 2010, at 8:06 PM, "Joshua Granick" <
[email protected]> wrote:

> I use Actuate:
>
> The syntax is nicer than TweenLite ... it works better with code
completion. It also runs faster than TweenLite, last I benchmarked
everything. It also doesn't have license fees to use, so if you make a
for-sale game, add-on or component in Flash, you don't need to pony up for a
license
>
> http://code.google.com/p/actuate/
>
>
>
> On Thu, 12 Aug 2010 07:50:45 -0700, andreyMK <[email protected]> wrote:
>
>> yes,
>> TweenLite works well, caurina no
>> Thank's a lot
>
>
> --
> Joshua Granick
> Owner / Lead Developer
> [ eclecticdesignstudio ]
> P: (916) 889-7306








--
Joshua Granick
Owner / Lead Developer
[ eclecticdesignstudio ]
P: (916) 889-7306

Reply via email to