我在我的代码MyAnim.Begin();
但是当我再次调用该方法时(例如,当我再次点击它时), 它会中断当前正在运行的动画并从头开始重新开始。
有没有办法,可以多次启动相同的动画而不会互相干扰?
我发了爆炸效果,我想让它一遍又一遍地爆炸。
答案 0 :(得分:1)
Storyboard对象包含已完成的事件。当故事板完成运行时会被触发。
我建议这样的事情:
私有对象_locker = new object(); private bool _isProcessing; private int _waitingAnimations;
public void Setup()
{
MyAnim.Completed+=CompletedExecution;
}
private void CompletedExecution(object sender, EventArgs args)
{
bool runAnotherAnim;
lock(_locker)
{
runAnotherAnim=_waitingAnimations>0;
if(_waitingAnimations>0)
_waitingAnimations--;
}
if(runAnotherAnim)
MyAnim.Begin();
else
_isProcessing=false;
}
public void AddAnimation()
{
lock(_locker)
{
if(_isProcessing)
{
_waitingAnimations++;
}
else
{
_isProcessing=true;
MyAnim.Begin();
}
}
}
你需要查看Completed事件提供的参数,因为我是从内存中执行此操作,但我之前使用过它,它确实完成了你想要做的事情。