Hi All,
http://www.smartclient.com/smartgwt/showcase/#effects_animation_move
[Roland Tepp] Yes, most of the move and resize effects are easily
doable. Fade in/out are currently not due to the fact that SWT
widgets in 3.2 do not support setting their alpha values.
Shell supports alpha values, so we already can do nice things here.
I've yet to try it, but creating a child shell and attaching widgets
to it could let us set alpha values for SWT widgets (a few listeners
will then be required to make this behave like there is no child
window). I know that's ugly :)
You did mention animating any property on any object, and I want to
stress that point further. The document describes a good framework
for consumers of widgets, but not necessarily for use within
widgets, which is far more important for a Nebula hosted project,
especially as SWT is supposedly working on a framework of their
own. The core of the framework really needs to be abstracted out to
just be a value changing at specific time intervals.
[Roland Tepp] Well – ma reasoning not to limit myself to only SWT
widgets was born out of the practical notion that there are things I
just can not do with SWT (like alpha blending, table row item
reordering animations, etc.) that I might need to emulate on a
completely custom drawn widget/layer, so I simply did away with any
assumptions on what it is exactly that I am animating.
The AP itself is loosely modeled after some examples I saw in
dabbling with Flash/Flex jQuery and WPF/Silverlight.
At the core there is an abstraction of an animation that has
actually nothiong to do with anything else than processing animation
events like starting, stopping, pausing and resuming animations. The
animator acts as a sort of a concertmaster (or more aptly
choreographer) of the whole animation and calls frame events on the
running animation(s). The only concrete types of animations that are
defined in the core api are Parallel and Sequence, which provide
parallel and sequential execution of the animations they contain.
And Tween, which is an abstract base class for simple „tweening“
animations like Move, Resize, Foreground, Background.
I probably forgot to mention that I also use SAT to animate the
"MediaFlow" view in ShareMedia (OpenGL / LWJGL). Animations are used
to move and rotate objects in the scene.
See : http://nricheton.homeip.net/?p=220 for a youtube video
The pluggable easing strategies look quite flexible, but would they
allow me to do a completely custom animation path? Here's some
reference for this:http://www.w3.org/TR/SVG/animate.html#AnimateMotionElement
.
[Roland Tepp] easing strategy is actually nothing else but a
function that defines the acceleration of the movement across it’s
movement path. If you want the path to be a curve, you have to write
your animation implementation that maps one-dimensional
„position“ (that Easing operates on) to a point in two- (or 3-)
dimensional plane. Move and Resize are just simplest of such
animations (their movement path being linear).
You can also look at SinusVariation and SinusDecreaseVariation in SAT.
They don't move an item from a point A to a point B like easing
equations, but only "shake" it before returning at it's original
position. (See 'Shake' and 'Grow' effects in http://nricheton.homeip.net/public/satdemo/satdemo.jnlp)
. Both Roland's and SAT API could easily implement these 'strange'
equations :).
--
Nicolas
_______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev