2016-03-30 26 views
0

Bir Qt 5.6 NumberAnimation (aslında pek çoğu) var. Açıkça değerlendirme zamanlarını kontrol etmek istiyorum. Örneğin, bunun bir animasyon programı olduğunu ve kullanıcının animasyon eğrileri oluşturduğunu ve şimdi de oynatma kafasının zaman çizelgesi boyunca ileri ve geri hareket ettiğini düşünün. Yeni bir oynatma süresi aldığımda, tüm animasyonları o zamana uygun değeri üretmek için değerlendirmek istiyorum.Kontrol animasyonu süresi (fırçalama) QML

Qt belgelerinden, bu mümkün görünmüyor. Animation'dan devralınan üyeler, start() ve pause() ve resume() animasyonunu, baştan restart()'a veya complete() sonuna kadar izin verir. Ama zamanı kontrol etmemi sağlayan bir yöntem veya özellik görmüyorum. Bununla birlikte, mümkün olan, ancak açık bir şekilde belgelenmeyen birçok QML özelliğini (örnekler aracılığıyla) buldum. Bu NumberAnimation ile mümkün mü?

Bu, NumberAnimation ile mümkün değilse, bunun başka bir yolu var mı? Bunun yerine animasyon için keyfi bir 2D yolunu temsil etmenin bir yolu ve daha sonra bu yol boyunca belirli bir X koordinatında Y kesişimini değerlendirmek için?

+0

Numberanimation PropertyAnimation dan "süreyi" devralıyorsa, bunu denedin mi? –

+0

@FrankOsterfeld Öneri için teşekkürler, ama hayır, bunu denemedim. ['Duration' özelliği] (http://doc.qt.io/qt-5/qml-qtquick-propertyanimation.html#duration-prop), animasyonun toplam uzunluğunu kontrol eder (başlangıçtan itibaren ne kadar sürerse) bitirmek için). Animasyon aracılığıyla% 95'e, sonra% 94'üne, sonra% 90'ından sonra% 25'e, sonra% 75'e vb. – Phrogz

cevap

2

posting on the Qt Forums ile keşfedilen çözelti animasyon zamanı kontrol -to aralığında [0,1] progress özelliği normalleştirilmiş ayarı, animasyon referans ve kontrol etmek için bir AnimationController kullanmaktır.

tek AnimationController den aynı anda birçok animasyonlar kontrol etmek için bir ParallelAnimation içinde animasyonlar sarın:

AnimationController { 
    id: controller 
    animation: ParallelAnimation { 
    id: anim 
    NumberAnimation { ... } 
    NumberAnimation { ... } 
    SequentialAnimation { 
     NumberAnimation { ... } 
     NumberAnimation { ... } 
    } 
    } 
}