有一个元素列表,每个元素都可以播放你的动画。方法返回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();
}
});
}
一个对象是一个监听器结束动画
用concatMap
代替flatMap
;当n
项目完成后,它将订阅n+1
项目。