QML Мигающая анимация
Мне нужна мигающая анимация для иконки, я сделал это до сих пор:
Icon{
id: bigLike
name: "like"
color: "white"
opacity: 0
width: parent.width / 2.5
height: parent.height / 2.5
anchors.centerIn: parent
PropertyAnimation { id: animationOne; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 1; duration: 1000 }
PropertyAnimation { id: animationTwo; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 0; duration: 1000 }
}
и вот я начинаю аниматоны:
animationOne.start()
animationTwo.start()
Но ничего не происходит.
После изменения параметров на это:
PropertyAnimation { id: animationOne; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 1; duration: 1000 }
PropertyAnimation { id: animationTwo; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 0.5; duration: 1000 }
анимация воспроизводилась, и она изменяла непрозрачность до 0,5, не изменяя ее сначала на 1.
Так что, похоже, проблема в том, что анимация рассчитывает окончательный результат и проигрывает его.
Вопрос в том, как добиться мигающей анимации?
1 ответ
Я нашел обходной путь, хотя, возможно, это не лучший способ сделать это, но он работает.
во-первых, анимации должны быть изменены на
PropertyAnimation { id: animationOne; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 1; duration: 500
onStopped: animationTwo.start()}
PropertyAnimation { id: animationTwo; target: bigLike;alwaysRunToEnd: true; property: "opacity"; to: 0; duration: 300 }
Таким образом, мы уверены, что вторая анимация (анимация затухания) начинается после завершения первой анимации.
при запуске анимации нам нужно просто запустить первую:
animationOne.start()