このページでは

C

Animation QML Type

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

Import Statement: import QtQuick
Since: Qt Quick Ultralite 1.0
Inherited By:
10 types

ColorAnimation, CoordinateAnimation, NumberAnimation, ParallelAnimation, PauseAnimation, PropertyAnimation, RotationAnimation, ScriptAction, SequentialAnimation, and TimelineAnimation

プロパティ

信号

  • finished() (since Qt Quick Ultralite 1.1)
  • void started() (since Qt Quick Ultralite 1.1)
  • void stopped() (since Qt Quick Ultralite 1.1)

方法

詳細説明

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

Statesとtransitionも参照してください

プロパティの説明

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

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構文を使用してプロパティ値ソースとしてアニメーションがプロパティに割り当てられている場合、デフォルトでアニメーションが実行されているように設定されます。

シグナル・ドキュメント

[since Qt Quick Ultralite 1.1] finished()

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

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

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

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

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

このシグナルはQt Quick Ultralite 1.1 で導入されました。

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

[since Qt Quick Ultralite 1.1] void started()

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

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

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

このシグナルはQt Quick Ultralite 1.1 で導入されました。

[since Qt Quick Ultralite 1.1] void stopped()

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

アニメーションは手動で停止されたかもしれないし、完了まで実行されたかもしれない。

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

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

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

このシグナルはQt Quick Ultralite 1.1 で導入されました。

メソッドのドキュメント

void start()

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

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

void stop()

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

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

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

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

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

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

特定の Qt ライセンスの下で利用可能です。
詳細を見る。