2016-08-13 56 views
0

有一個元素列表,每個元素都可以播放你的動畫。動畫方法返回Observable,並在動畫被稱爲subscriber.onNext(); subscriber.onCompleted();時結束。如何獲得列表項的結果依次爲

然後我做

Observable.from (items) 
                 .flatMap (item :: startAnimation) 
                 .subscribe(); 

如何使這將是下一個項目的動畫以前動畫結束後開始了嗎?於是,他們開始在同一時間

public Observable<Boolean> startAnimation(){ 
     return Observable.create(subscriber -> { 
     Action action = new Action() { 
      @Override 
      public boolean act(float delta) { 
       subscriber.onNext(true); 
       subscriber.onCompleted(); 
       return true; 
      } 
     }; 

     if(moveToAction != null){ 
      SequenceAction sequenceAction = new SequenceAction(moveToAction, action); 
      main.addAction(sequenceAction); 
     }else{ 
      subscriber.onNext(true); 
      subscriber.onCompleted(); 
     } 
    }); 
    } 

Aсtion對象是聽衆結束動畫

+0

你能粘貼startAnimation方法,它返回可觀察? –

+0

我加入'startAnimation'方法 – SorryForMyEnglish

回答

0

代替flatMap使用concatMap;當物品n已完成時,它將訂閱物品n+1

+0

謝謝,這是你需要的 – SorryForMyEnglish

相關問題