2016-03-30 29 views
0

私はQtが5.6 NumberAnimationです(実際は多く)。私はそれらの評価時間を明示的に制御したい。たとえば、これがアニメーションプログラムであり、ユーザーがアニメーションカーブを作成し、タイムラインに沿って前後に再生ヘッドをスクラブしているとします。新しい再生ヘッドタイムを取得するたびに、その時間に適切な値を生成するようにすべてのアニメーションを評価したいと思います。QMLのアニメーション時間(スクラブ)を制御する

Qtのドキュメントから、これは見えません。 Animationから継承されたメンバーは、start()pause()resume()のアニメーション、最初からrestart()、またはcomplete()の最後までアニメーションできます。しかし、私は時間を制御することができるメソッドやプロパティが表示されません。しかし、私は可能であるが明らかに文書化されていない多くのQML機能を(例を通して)見つけました。これはNumberAnimationで可能ですか?

NumberAnimationでこれができない場合は、別の方法がありますか?代わりに、アニメーションの任意の2Dパスを表現し、そのパスに沿ったX座標のY交差点を評価するいくつかの方法はありますか?

+0

NumberanimationはPropertyAnimationから「継続時間」を継承している、あなたはそれを試してみたのですか? –

+0

@FrankOsterfeld提案していただきありがとうございますが、私はそれを試していませんでした。 ['duration'プロパティ](http://doc.qt.io/qt-5/qml-qtquick-propertyanimation.html#duration-prop)は、アニメーションの全体の長さを制御します(開始から実行までの時間終わる)。アニメーションでは95%、次に94%、次に90%、次に25%、75%などの時間にジャンプすることはできません。 – Phrogz

答えて

2

posting on the Qt Forumsで発見されたように、アニメーションの参照と制御にAnimationControllerを使用し、progressを[0,1]の範囲でプロパティ正規化を設定してアニメーション時間を制御するという解決策があります。単一AnimationControllerから一度に多くのアニメーションを制御するには

、あなたがParallelAnimationでアニメーションをラップ:

AnimationController { 
    id: controller 
    animation: ParallelAnimation { 
    id: anim 
    NumberAnimation { ... } 
    NumberAnimation { ... } 
    SequentialAnimation { 
     NumberAnimation { ... } 
     NumberAnimation { ... } 
    } 
    } 
} 
関連する問題