Crate anim[−][src]
Expand description
anim
This is a framework independent animation library for rust, works nicely with Iced and the others.
Showcase
How to install?
Include anim
in your Cargo.toml
dependencies:
[dependencies]
anim = "0.1"
Note: anim
turns on iced-backend
feature by default. You need to disable default features if you do not work with iced
.
[dependencies]
anim = { version="0.1", default-features = false }
How to use?
There are 3 important concepts in anim
:
-
Animatable
Types derived fromAnimatable
means that its values can be calculated based on timing progress, with which you can createAnimation
objects. -
Animation
TheAnimation
generates values based on its timing progress. You can construct a bigAnimation
from small ones. -
Timeline
WithTimeline
you can control your animations’ lifetime.
For simple scenarios, you just need Options
.
use anim::{Options, Timeline, Animation, easing};
Then, build and start your animation:
use std::time::Duration;
use anim::{Options, Timeline, Animation, easing};
let mut timeline = Options::new(20,100).easing(easing::bounce_ease())
.duration(Duration::from_millis(300))
.begin_animation();
loop {
let status = timeline.update();
if status.is_completed() {
break;
}
println!("animated value: {}", timeline.value());
}
For complex scenarios, please look at examples to gain some ideas.
Modules
make a type animatable
animation builders
ease functions
thread local based timeline
timeline definitions
utilities
Structs
Enums
key time
how an Animation
repeats its simple duration
seek progress of current animation, only keep the remaining part
Constants
default animation time, 1 second
Traits
generates output values based on its timing progress
your animation, which outputs animated value based on the progressing time.
like Iterator
, but does not consume any element
easing function
Derive Macros
the macro derives anim::Animatable
for you automatically.