animate
¶
Low level function to begin an animation.
Using rtk.Widget:animate() instead is strongly preferred. You probably never need to
call this global function directly, unless you're doing some low level operation and
want to animate a non-widget attribute.
The arguments are the same as rtk.Widget:animate(), plus:
key: a globally unique string that identifies this animation. Any active animation
with the same key is cancelled and replaced if the dst value is different, otherwise
the rtk.Future from the current running animation is returned.widget: an optional rtk.Widget to act upon. If defined, the attr field specifies
a particular attribute to animate. If nil, you'll want to specify update in
order to receive frame updates during the animation.attr: if widget is not nil, this is the widget's attribute that's being animated.update: an optional function that's invoked on each step of the animation,
and which receives as arguments (value, target, attr, anim), where value is
the current mid-animation value, target and attr correspond to the fields in
the table passed to this function, and anim is the overall table holding the
animation state (see below). The update callback is useful when you want to
animate something other than a widget attribute.target: the target table against which the animation is occurring. This defaults
to widget if nil.stepfunc: a function invoked to yield the next step of the animation, which
is manditory when src/dst are neither scalar numbers nor tables containing
numbers. The function takes two arguments (target, anim) which are the same as
described in the update field above. The function must return the attribute
value for the next frame in the animation.doneval: when the animation is finished, the target attribute will be set to this
final value. Defaults to dst if not specified. If doneval needs to be nil, then
use rtk.Attribute.NIL explicitly.The animation state table passed to stepfunc is also the same table returned here and
by rtk.Widget:get_animation(). It contains all user-supplied fields, fully resolved
src and dst values, as well as these fields:
pct: the percentage of the next step in the animation (from 0.0 to 1.0)pctstep: the percentage increase for each step in the animation (from 0.0 to 1.0).
This is adaptive based on the value of rtk.fps at the time the animation is started.easingfunc: the easing function that the easing name resolved tofuture: an rtk.Future representing the state of the running animationresolve: a convenience function that can be used by custom step functions to
translate pct value (from 0.0 to 1.0) to the actual value between src and dst.Custom stepfunc functions can use the above fields from the animation state
table to determine the attribute value for each frame in the animation. When
stepfunc is invoked, the pct field represents the current value that's needed.
| kwargs | (table) | of attributes describing the animation |
| (rtk.Future) | a Future object tracking the state of the asynchronous animation |
Easing functions control the rate of change of the attribute being animated over time, and define the basic contour of the animation.
These easing function names can be used as the easing argument to either
rtk.Widget:animate() (the preferred way to animate a widget) or
rtk.queue_animation().
See easings.net for an excellent visual aid on the behavior of each easing functions. All the easing functions listed on that website are supported by rtk.
You can add custom easing functions to this table as well, keyed on the easing function name. The function receives one parameter -- a value between 0.0 and 1.0 that represents the animation's current position in time within the animation -- and returns the transformed value.
| linear¶ | |
| in-sine¶ | |
| out-sine¶ | |
| in-out-sine¶ | |
| in-quad¶ | |
| out-quad¶ | |
| in-out-quad¶ | |
| in-cubic¶ | |
| out-cubic¶ | |
| in-out-cubic¶ | |
| in-quart¶ | |
| out-quart¶ | |
| in-out-quart¶ | |
| in-quint¶ | |
| out-quint¶ | |
| in-out-quint¶ | |
| in-expo¶ | |
| out-expo¶ | |
| in-out-expo¶ | |
| in-circ¶ | |
| out-circ¶ | |
| in-out-circ¶ | |
| in-back¶ | |
| out-back¶ | |
| in-out-back¶ | |
| in-elastic¶ | |
| out-elastic¶ | |
| in-out-elastic¶ | |
| in-bounce¶ | |
| out-bounce¶ | |
| in-out-bounce¶ |