В настоящее время я работаю над роботом Pepper (разработчик Android), и я пытаюсь использовать некоторые "базовые" анимации (из библиотеки QiSQK).
Например, при вызове WS я запускаю анимацию «think» с использованием animation / animate. Затем, когда заканчивается вызов WS, я пытаюсь использовать другую анимацию («показ планшета»).
Я видел, что Пеппер не может анимировать дважды, если предыдущая анимация не закончена / не отменена.
Итак, я использовал requestCancellation()
, но это не остановило анимацию.
Я также использовал cancel(mayInterruptIfRunning)
, тоже не остановился.
Итак, я не могу связать 2 анимации, не дожидаясь остановки предыдущей анимации (мой вызов WS = максимум 3-4 с).
Есть идеи?
Пример:
private var animate: Future<Animate>? = null
fun animate(animRes: Int) {
animate?.requestCancellation()
AnimationBuilder
.with(qiContext)
.withResources(animRes)
.buildAsync()
.thenConsume { futureAnimation ->
animate = AnimateBuilder
.with(qiContext)
.withAnimation(futureAnimation?.value)
.buildAsync()
animate?.andThenConsume {
it.async().run()
}
}
}
Thx,
Бастьен.