Animation QML Type

すべての QML アニメーションの基本です。詳細...

プロパティ

シグナル

メソッド

詳細説明

Animation型はQMLファイルで直接使用することはできません。Animation型は共通のプロパティとメソッドを提供するために存在し、それを継承する他のすべてのAnimation型で利用可能です。Animation型を直接使用しようとするとエラーになります。

プロパティ Documentation

alwaysRunToEnd : bool

このプロパティは、アニメーションが停止したときに、完了まで実行するかどうかを保持します。

このプロパティがtrueの場合、アニメーションは、running プロパティをfalseに設定するか、stop() メソッドを呼び出すことで、停止時に現在の反復を完了します。complete() メソッドはこの値の影響を受けません。

この動作は、loops プロパティが設定されている場合に最も有用で、アニメーションは正常に再生を終了しますが、再起動はしません。

デフォルトでは、alwaysRunToEnd プロパティは設定されていません。

注意: alwaysRunToEnd は、Transition 内のアニメーションには影響しません。


loops : int

このプロパティは、アニメーションの再生回数を保持します。

デフォルトでは、loops は 1 です。アニメーションは一度再生された後、停止します。

Animation.Infinite に設定すると、アニメーションは、running プロパティを false に設定するか、stop() メソッドを呼び出して明示的に停止させるまで、継続的に繰り返されます。

次の例では、矩形は無期限に回転します。

Rectangle {
    width: 100; height: 100; color: "green"
    RotationAnimation on rotation {
        loops: Animation.Infinite
        from: 0
        to: 360
    }
}

paused : bool

このプロパティは、アニメーションが現在一時停止しているかどうかを保持します。

paused プロパティを設定することで、アニメーションを一時停止するかどうかを宣言的に制御できます。

アニメーションは、pause()resume() メソッドを使用して、JavaScript から強制的に一時停止および再開することもできます。

デフォルトでは、アニメーションは一時停止されません。


running : bool

このプロパティは、アニメーションが現在実行中かどうかを保持します。

running プロパティを設定することで、アニメーションが実行中かどうかを宣言的に制御することができます。次の例では、MouseArea が押されるたびに、矩形がアニメーションします。

Rectangle {
    width: 100; height: 100
    NumberAnimation on x {
        running: myMouse.pressed
        from: 0; to: 100
    }
    MouseArea { id: myMouse }
}

同様に、running プロパティを読み込んで、アニメーションが実行中かどうかを判断することもできます。次の例では、アニメーションが実行されているかどうかを Text 項目で示します。

NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" }

アニメーションは、start()stop() メソッドを使って、JavaScript から命令的に開始したり停止したりすることもできます。

デフォルトでは、アニメーションは実行されていません。ただし、on構文を使用してプロパティ値ソースとしてアニメーションがプロパティに割り当てられると、デフォルトでアニメーションが実行されるように設定されます。


シグナルの説明

finished()

このシグナルは、アニメーションが自然に終了したときに発せられます。

このシグナルは、runningfalse に設定されている場合や、loops プロパティがAnimation.Infinite に設定されているアニメーションでは発せられません。

また、このシグナルはトップレベルのスタンドアローンアニメーションに対してのみ発せられます。ビヘイビア(Behavior)やトランジション(Transition)内のアニメーションや、アニメーション・グループの一部であるアニメーションでは、このシグナルは発せられません。

alwaysRunToEnd が true の場合、アニメーションが現在のイテレーションを完了するまで、このシグナルは発行されません。

注: 対応するハンドラはonFinished です。

stopped()、started()、runningも参照してください


started()

このシグナルはアニメーションの開始時に発せられます。

このシグナルはトップレベルのスタンドアローンアニメーションに対してのみトリガーされます。ビヘイビアやトランジション内のアニメーション、アニメーショングループのアニメーションではトリガーされません。

注: 対応するハンドラはonStarted です。


stopped()

このシグナルは、アニメーションが終了したときに発行されます。

アニメーションは手動で停止された場合もあれば、完了まで実行された場合もあります。

このシグナルはトップレベルのスタンドアローンアニメーションに対してのみトリガーされます。ビヘイビアやトランジション内のアニメーション、アニメーショングループのアニメーションではトリガーされません。

alwaysRunToEnd が true の場合、アニメーションが現在のイテレーションを完了するまで、このシグナルは発生しません。

注: 対応するハンドラはonStopped です。


メソッドの説明

complete()

アニメーションを停止し、最終的なプロパティ値にジャンプします。

アニメーションが実行されていない場合、このメソッドを呼び出しても効果はありません。complete() を呼び出すと、running プロパティは false になります。

stop() とは異なり、complete() は、アニメーションを終了まで即座に早送りします。次の例では

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

stop() を呼び出すと、x プロパティの値は 50 になり、complete() を呼び出すと、x プロパティの値は 100 になります。


pause()

アニメーションを一時停止する

アニメーションがすでに一時停止されているか、running されていない場合、このメソッドを呼び出しても効果はありません。pause() を呼び出すと、paused プロパティは真になります。


restart()

アニメーションを再開する

これは便宜的なメソッドで、stop() を呼び出してからstart() を呼び出すのと同じです。


resume()

一時停止したアニメーションを再開する

アニメーションが一時停止されていないか、running されていない場合、このメソッドを呼び出しても効果はありません。resume() を呼び出すと、paused プロパティは false になります。


start()

アニメーションを開始する

アニメーションがすでに実行されている場合、このメソッドを呼び出しても効果はありません。start() を呼び出すと、running プロパティは true になります。


stop()

アニメーションを停止する

アニメーションが実行されていない場合、このメソッドを呼び出しても効果はありません。stop() を呼び出すと、runningpaused の両プロパティは false になります。

通常、stop() はアニメーションを即座に停止し、アニメーションはプロパティ値にそれ以上影響を与えません。この例では

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

が時間 250ms で停止した場合、x プロパティの値は 50 になります。

しかし、alwaysRunToEnd プロパティが設定されている場合、アニメーションは完了するまで実行され続け、その後停止します。running プロパティは、すぐに false になります。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。