2016-08-13 9 views
0

要素のリストがあり、各要素はアニメーションを再生できます。アニメーションメソッドObservableを返し、アニメーションがsubscriber.onNext(); subscriber.onCompleted();と呼ばれると終了します。リスト項目の結果を順番に取得する方法

は、それから私は、アニメーションは前のアニメーションの終了後に開始、次の項目であるものにする方法

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

をやっていますか? ;そこで、彼らはAсtionオブジェクトが代わりにflatMap使用concatMapのリスナーのエンド・アニメーション

+0

observableを返すstartAnimationメソッドを貼り付けてください。 –

+0

私は 'startAnimation'メソッドを追加しました – SorryForMyEnglish

答えて

0

ある

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(); 
     } 
    }); 
    } 

同時に開始しますアイテムnが完了した場合、アイテムn+1に登録されます。

+0

ありがとう、これはあなたが必要なものです – SorryForMyEnglish

関連する問題