2016-08-13 1 views
0

요소 목록이 있습니다. 각 요소는 애니메이션을 재생할 수 있습니다. 애니메이션 메서드는 subscriber.onNext(); subscriber.onCompleted(); 일 때 Observable을 반환하고 끝납니다. 그런 다음목록 항목의 결과를 차례로 얻는 방법

내가

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

관련 문제