QML Animação piscante

1

Eu preciso de uma animação piscando para um ícone, até agora:

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 }
                }

e aqui eu começo animatons:

animationOne.start()
animationTwo.start()

Mas nada acontece.

Depois de alterar os parâmetros para isso:

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 }

a animação foi reproduzida e alterou a opacidade para 0,5 sem alterá-la para 1 primeiro.

Assim, parece que o problema é que a animação calcula o resultado final e o reproduz.

A questão é como conseguir a animação piscando?

    
por sinabakh 07.05.2015 / 10:43

1 resposta

1

Encontrei uma solução alternativa, embora possa não ser a melhor maneira de fazer isso, mas funciona.

primeiro, as animações devem ser alteradas para

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 }

Dessa forma, temos certeza de que a segunda animação (animação de desvanecimento) será iniciada após a conclusão da primeira animação.

quando iniciamos animações, precisamos apenas iniciar o primeiro:

animationOne.start()
    
por sinabakh 10.05.2015 / 07:28