如果在 xamarin 中单击按钮,如何立即停止 lottie 动画
How to immediately stop a lottie animation if button is clicked in xamarin
我的按钮有这个点击事件:
private void BtnRecord_Clicked(object sender, EventArgs e)
{
if (BtnRecord.BackgroundColor == Color.Coral)
{
blue_record_lottie.Loop = true;
blue_record_lottie.AutoPlay = true;
blue_record_lottie.Play();
BtnRecord.BackgroundColor = Color.Red;
}
else if (BtnRecord.BackgroundColor == Color.Red)
{
BtnRecord.BackgroundColor = Color.Coral;
blue_record_lottie.AbortAnimation(blue_record_lottie.ToString());
blue_record_lottie.Loop = false;
blue_record_lottie.AutoPlay = false;
}
}
如果按钮颜色为红色并且动画播放完毕,它只是停止按钮的动画。动画必须从动画开始到结束结束,然后停止。我希望它在我点击按钮时立即停止。
提前致谢
如果你想让你的动画立即回到动画的第一个状态,你可以这样做:
Animation.PlayFrameSegment(0, 0);
这将播放动画的第一帧,之后,您可以像往常一样重新启动动画。
从 Xamarin Lottie 4.0 开始,PlayFrameSegment 方法不再存在。相反,您将不得不使用:
Animation.PlayMinAndMaxFrame(0.0f, 0.0f);
或
Animation.PlayMinAndMaxProgress(0.0f, 0.0f);
Animation.playAnimation;
开始
Animation.pauseAnimation;
停止
我的按钮有这个点击事件:
private void BtnRecord_Clicked(object sender, EventArgs e)
{
if (BtnRecord.BackgroundColor == Color.Coral)
{
blue_record_lottie.Loop = true;
blue_record_lottie.AutoPlay = true;
blue_record_lottie.Play();
BtnRecord.BackgroundColor = Color.Red;
}
else if (BtnRecord.BackgroundColor == Color.Red)
{
BtnRecord.BackgroundColor = Color.Coral;
blue_record_lottie.AbortAnimation(blue_record_lottie.ToString());
blue_record_lottie.Loop = false;
blue_record_lottie.AutoPlay = false;
}
}
如果按钮颜色为红色并且动画播放完毕,它只是停止按钮的动画。动画必须从动画开始到结束结束,然后停止。我希望它在我点击按钮时立即停止。
提前致谢
如果你想让你的动画立即回到动画的第一个状态,你可以这样做:
Animation.PlayFrameSegment(0, 0);
这将播放动画的第一帧,之后,您可以像往常一样重新启动动画。
从 Xamarin Lottie 4.0 开始,PlayFrameSegment 方法不再存在。相反,您将不得不使用:
Animation.PlayMinAndMaxFrame(0.0f, 0.0f);
或
Animation.PlayMinAndMaxProgress(0.0f, 0.0f);
Animation.playAnimation;
开始
Animation.pauseAnimation;
停止