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/
--
Joshua Granick
Owner / Lead Developer
[ eclecticdesignstudio ]
P: (916) 889-7306
Sent from my iPhone
I think I found another regression since Away3D 3.4.
I have a simple Plane, that I'm listening to with MouseEvent3D.MOUSE_DOWN.
It worked in Away3D 3.4, but I recently realized (since updating this
project to Away3D 3.5) that the MOUSE_DOWN event isn't firing any more. I
investigated a bit, and discovered that if the plan is set to pushfront or
to ownCanvas, it works as expected, but if both these properties are set
it no longer fires the MOUSE_DOWN event. This is disappointing, because it
is only when both of these properties are true that it appears in front of
the grid plane that is behind it.
I'll post again if I find a workaround, but until then I thought I'd try
and bring some attention to this. Maybe someone has ideas?
Thanks!
It seems that when ownCanvas is true, mouse clicks will fail ...
sometimes. Sometimes it won't receive any clicks, and you can move the
mouse slowly and it will still fail. Then if you shake the mouse a bit
more, clicking the same spot will work. The scene does not render
automatically, and does not move with the mouse, so it's the same literal
render.
One other thing that may be useful ... the Plane is contained inside an
ObjectContainer3D
- I am using two views, layered on top of each other. They both use the
same camera, but using separate view objects lets me render them
individually, which is useful for performance
- The top view has objects which are dragged in 2D. The bottom view has a
flat plane for the floor
- When the floor plane does not have pushfront or ownCanvas set to true,
it catches clicks correctly
- When the floor plane has pushfront and ownCanvas set to true, it
doesn't receive any clicks
- When the floor plane has pushfront false, but ownCanvas is true, it
misses clicks that are near an object in the view above (within the
object's bounding box, I suppose?)
- When the floor plane has pushfront true, but ownCanvas is false, it
catches clicks correctly
Having ownCanvas false, but pushfront true, or having both false was
resulting in incorrect rendering, but having them true has been causing
mouse down problems, when it used to work. I think I've found a way around
the rendering issues for now, so I may be okay without ownCanvas, but I
still thought this was worth mentioning
On Thu, 12 Aug 2010 17:14:54 -0700, Joshua Granick
<bulk...@joshuagranick.com> wrote:
Thank you :)
On Sat, 04 Sep 2010 18:08:18 -0700, Rob Bateman <rob.b...@gmail.com>
wrote:
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 <explo...@gmail.com>
wrote: