Один из элегантных фреймворков для создания анимаций. Поддерживает прямой вызов функций и цепочечный вызов. Внутри использует Tween в качестве ядра анимации.
Использование анимации
Далее рассмотрим использование Tween-анимации.
Цепочечные и action-анимации (https://gitee.com/wu_fuqi/WuKongAnimation/blob/master/README.md) не рассматриваются в этом документе.
Создание многоразовой анимации Tween
Созданная анимация Tween может быть повторно запущена с помощью методов start() и stop(), и её можно использовать повторно.
// Объявляем объект класса Obj
class Obj {
var alpha = 0
}
// Создаём объект obj
val obj = Obj()
// Заставляем значение «alpha» объекта obj изменяться от 0 до 1 за 1000 миллисекунд и запускаем анимацию
val tween = TweenManager.builder(obj)
.to(mutableMapOf("alpha" to 1))
.time(1000)
.start()
// Останавливаем анимацию obj
tween.stop()
// Удаляем текущую анимацию Tween, после удаления её нельзя использовать снова
tween.remove()
Создание одноразовой анимации Tween
Создаваемая анимация Tween является одноразовой, она автоматически удаляется после завершения выполнения, и нет необходимости вызывать метод remove() повторно.
// Объявляем объект класса Obj
class Obj{
var alpha = 0
}
// Создаём объект obj
val obj = Obj()
// Заставляем значение «alpha» объекта obj изменяться от 0 до 1 за 1000 миллисекунд и запускаем анимацию
val tween = TweenManager.builderOne(obj)
.to(mutableMapOf("alpha" to 1))
.time(1000)
.start()
// Или можно использовать метод setExpire(true), чтобы создать одноразовую анимацию Tween
val tween = TweenManager.builder(obj)
.setExpire(true)
.to(mutableMapOf("alpha" to 1))
.time(1000)
.start()
Создание анимации Tween с заданным количеством повторов
Используйте repeat(1), чтобы установить количество повторов, repeat(-1) — бесконечное повторение.
// Объявляем объект класса Obj
class Obj{
var alpha = 0
}
// Создаём объект obj
val obj = Obj()
// Заставляем значение «alpha» объекта obj изменяться от 0 до 1 за 1000 миллисекунд и запускаем анимацию
val tween = TweenManager.builderOne(obj)
// val tween = TweenManager.builder(obj)
.to(mutableMapOf("alpha" to 1))
// .repeat(-1) // Бесконечное повторение
.repeat(10) // 10 повторений
.time(1000)
.start()
Создание анимации Tween с эффектом пинг-понга
Чтобы установить эффект пинг-понга, используйте pingPong(true).
// Объявляем объект класса Obj
class Obj{
var alpha = 0
}
// Создаём объект obj
val obj = Obj()
// Заставляем значение «alpha» объекта obj изменяться от 0 до 1 за 1000 миллисекунд и запускаем анимацию
val tween = TweenManager.builderOne(obj)
// val tween = TweenManager.builder(obj)
.to(mutableMapOf("alpha" to 1))
.pingPong(true) // Устанавливаем эффект пинг-понга
.time(1000)
.start()
События анимации Tween
TweenManager.builder(obj)
.to(mutableMapOf("alpha" to 1))
.time(1000)
.pingPong(true)
.repeat(-1)
.on(TweenManager.EVENT_START) {
// Анимация начинается
Log.i(this::class.java.name, "Tween start")
}
.on(TweenManager.EVENT_RESTART) {
// Анимация перезапускается
Log.i(this::class.java.name, "Tween restart")
}
.on(TweenManager.EVENT_UPDATE) {
// Ключевой кадр анимации, обычно около 60 кадров в секунду, зависит от системы.
// Имя: частота кадров FPS
Log.i(this::class.java.name, "Tween update")
}
.on(TweenManager.EVENT_ERPEAT) {
// Вызывается при повторном выполнении анимации
Log.i(this::class.java.name, "Tween repeat")
}
.on(TweenManager.EVENT_END) {
// Вызов после выполнения анимации
Log.i(this::class.java.name, "Tween end")
}
.on(TweenManager.EVENT_STOP) {
// Вызывается, когда вызывается метод stop()
Log.i(this::class.java.name, "Tween stop")
}
Easing — функции замедления
Функции замедления вычисляются по ссылке на функции замедления в tween.js.
Эффект замедления (http://tweenjs.github.io/tween.js/examples/03_graphs.html) .to(mutableMapOf("alpha" to 1)) .time(1000) .easing(Easing.linear()) // Использование линейного метода замедления, по умолчанию используется линейный метод .start()
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )