QML: атрибуту выполнения SequencialAnimation присвоено значение false, но он все еще работает

я сделал анимацию в переходе. поэтому, если состояние изменяется, поэтому переход испускается. вот последовательная анимация, которую я сделал.

SequentialAnimation{
            PropertyAnimation{
                properties: "width"
                duration: 300
            }
            PropertyAnimation{
                properties: "x"
                duration: 500
            }
            Component.onCompleted: {
                var idx = Math.ceil(Math.random()*2);
                if(idx===0){
                    anim0.running = true
                    anim1.running = false
                }
                else {
                    anim1.running = true
                    anim0.running = false
                }
                console.log("haha");
            }
        }

        SequentialAnimation{
            id: anim0
            running: false
            NumberAnimation{
                running: anim0.running
                properties: "x"
                to: 300
                duration: 500
            }
            Component.onCompleted: console.log("anim0");
        }
        SequentialAnimation{
            id: anim1
            running: false
            NumberAnimation{
                running: anim1.running
                properties: "x"
                to: -300
                duration: 500
            }
            Component.onCompleted: console.log("anim1");
        }

Сначала игнорируйте JavaScript при сигнале Component.onCompleted. SequencialAnimation с id: anim1 и anim0 продолжают работать, хотя я уже установил для атрибута running значение false...


person Muhammad Zullidar    schedule 12.12.2012    source источник


Ответы (1)


Установка для свойства running элемента Animation значения false не предотвратит запуск анимации. Он просто остановит его, если он в настоящее время запущен.

Если вы не хотите, чтобы анимация запускалась в переходе, просто не помещайте ее внутрь перехода. Вы всегда можете определить свой собственный Animation элемент вне Transition и активировать его, когда захотите, с помощью функции animationId.start().

Подробную информацию см. на странице документации.

person TheHuge_    schedule 12.12.2012
comment
Хай...спасибо за помощь...но как это сделать? я должен назвать это в sequenceAnimation? или с помощью сигнала? я очень новичок в qml.. - person Muhammad Zullidar; 12.12.2012
comment
Что ж, это зависит от того, что вы хотите сделать... В каком случае вы устанавливали для свойства running значение true? - person TheHuge_; 12.12.2012