也许这是一个愚蠢的问题,但无法管理下一个问题。 我在按钮上放了gif动画。但它顺序循环,永不停止。 我需要在完成一圈后停止。
Bitmap boom = new Bitmap("boom.gif");
b[ship2.Column, ship2.Row].Image = boom;
我的代码出了什么问题?
答案 0 :(得分:0)
您的代码没有错。
循环次数存储在图像元数据中。所以基本上你需要提供一个禁用循环的gif或edit it with some kind of gif editor.
修改强>
由于它忽略了gif元数据并永远循环,你可以使用http://gif-explode.com/来获取gif的最后一帧。然后测量动画循环的里程数,并执行以下操作:
答案 1 :(得分:0)
我建议您使用pictureBox
并尝试使用此代码(如果可能,请执行)
// this starts animation
System.Drawing.ImageAnimator.Animate(pictBox.Image, OnFrameChanged);
// this stops animation
System.Drawing.ImageAnimator.StopAnimate(pictBox.Image, OnFrameChanged);
private void OnFrameChanged(object sender, EventArgs e)
{
// conditions
}
答案 2 :(得分:0)
你可以使用一系列图像而不是gif。您可以使用计时器并将间隔设置为所需的速度。计时器将在每次抽搐时更改按钮的图像。你需要gif的框架。你可以去 - > http://gif-explode.com/。把gif放在那里,得到每一帧。然后,您可以将图像放在图像列表中。我想你想要在点击按钮时启动动画。
int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{
if (i == imageList1.Images.Count)
{
timer1.Stop();
i = 0;
}
button1.Image = imageList1.Images[i];
i++;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}