2012-11-11 53 views
1

我在我的代碼調用一個故事板,動畫像MyAnim.Begin();開始故事板,動畫一遍又一遍

但是當我再次調用該方法(比如,當我點擊做一遍), 它中斷當前正在運行動畫從一開始就從新開始。

有沒有辦法在不中斷對方的情況下多次啓動相同的動畫?

我做了爆炸效果,我想讓它一遍又一遍地爆炸。

回答

1

故事板對象包含完成的事件。當故事板完成運行時會被觸發。

我建議是這樣的:

私有對象_locker =新的對象(); 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事件提供的參數,但我以前用過這個,它做了你希望做什麼。

相關問題