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