纯Rust语言编写的动画库,可以配合Iced和其它GUI框架工作。
添加 anim 到 cargo 项目中:
[dependencies]
anim = "0.1"注意: anim 默认打开了 iced-backend 特性支持。你可以关掉这个特性:
[dependencies]
anim = { version="0.1", default-features = false }anim 有三个重要的概念:
-
Animatable任何类型实现了Animatable,那么意味着可以根据时间进度计算它的值。通过它可以创建Animation对象。 -
AnimationAnimation根据时间进度产生新的值。可以通过组合Animation构建更大的Animation对象。 -
Timeline通过Timeline控制动画的生命周期。
简单场景,只需要使用 Options。
use anim::{Options, Timeline, Animation, easing};然后创建和运行动画:
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());
}更复杂的场景可以参考示例代码。
这个示例演示颜色的动画:
cargo run --release --example color-example这个示例演示尺寸的动画:
cargo run --release --example size-example这个示例演示雨水溅落的动画:
cargo run --release --example animated-splashMIT


