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()
Другие вопросы по тегам