AnimatedSprite QML Type

スプライトのアニメーションを描画します。もっと詳しく...

Import Statement: import QtQuick
Inherits:

Item

プロパティ

信号

方法

詳細説明

AnimatedSpriteは、同じ画像ファイル内の複数のフレームとして提供されるアニメーションのレンダリングと制御を提供する。固定速度で再生したり、ディスプレイのフレームレートで再生したり、手動で進めたり、進行を制御したりすることができる。

次のスプライト・シートを考えてみましょう:

これは4つのフレームに分割できます:

それぞれのフレームを1フレーム500ミリ秒の速度で再生するには、次のコードを使います:

コード結果
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
}

デフォルトでは、アニメーションがより滑らかに見えるように、フレームは補間(ブレンド)されます。これを無効にするには、interpolatefalse に設定します:

コード結果
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
    interpolate: false
}

AnimatedSpriteがスケーリングされたときにどのように反応するかを制御するには、smooth プロパティを使用します。

SpriteSequence とは異なり、AnimatedSprite タイプは、Sprite を使用して複数のアニメーションを定義するのではなく、単一のアニメーション自体をカプセル化することに注意してください。

スプライトのアニメーションも参照してください

プロパティ・ドキュメント

currentFrame : int

一時停止中は、このプロパティを設定するか、advance ()を呼び出すことで、現在のフレームを手動で進めることができます。


finishBehavior : enumeration

アニメーションが勝手に終了したときの動作。

定数説明
FinishAtInitialFrameアニメーションが終了すると、最初のフレームに戻ります。これはデフォルトの動作です。
FinishAtFinalFrameアニメーションが終了すると、最終フレームに留まります。

frameCount : int

このAnimatedSprite のフレーム数。


frameDuration : int

アニメーションの各フレームの継続時間(ミリ秒)。0 以下の値は無効です。

frameRate が有効な場合、フレームの持続時間の計算に使用されます。そうでなく、frameDuration が有効な場合は、frameDuration が使用されます。

このパラメータを変更すると、アニメーションが再開されます。


frameHeight : int

このAnimatedSprite の単一フレームの高さ。

ファイル内の唯一のスプライトの場合は省略できます。


frameRate : real

アニメーションで表示する1秒あたりのフレーム数。0 以下の値は無効です。

frameRate が有効な場合、フレームの持続時間の計算に使用されます。有効でなく、frameDuration が有効な場合は、frameDuration が使用されます。

このパラメータを変更すると、アニメーションが再スタートします。


frameSync : bool

true の場合、アニメーションの継続時間はありません。その代わり、アニメーションはフレームがスクリーンにレンダリングされるたびに1フレーム進みます。これは、経過時間ではなく、ペイントレートに同期します。

frameSync を true に設定すると、frameRateframeDuration の両方が上書きされます。

デフォルトはfalse です。

このパラメータを変更すると、アニメーションが再スタートします。


frameWidth : int

このAnimatedSprite の 1 フレームの幅。

ファイル内の唯一のスプライトの場合は省略可能です。


frameX : int

AnimatedSprite の最初のフレームのイメージファイル内の X 座標。

最初のフレームがファイルの左上隅から始まる場合は省略可能です.


frameY : int

AnimatedSprite の最初のフレームのイメージファイル内のY座標。

最初のフレームがファイルの左上隅で始まる場合は省略可能。


interpolate : bool

trueを指定すると、スプライトフレーム間で補間が行われ、アニメーションがより滑らかに表示されます。

デフォルトはtrueです。


loops : int

アニメーションをこの回数再生すると、アニメーションは自動的に停止します。負の値は無効です。

これをAnimatedSprite.Infinite に設定すると、アニメーションは勝手に停止しません。

デフォルトはAnimatedSprite.Infinite


paused : bool

一時停止中、現在のフレームを手動で進めることができます。

デフォルトはfalse です。


reverse : bool

true に設定すると、アニメーションは逆再生されます。

デフォルトはfalse です。


running : bool

スプライトがアニメーションしているかどうか。

デフォルトは true。


source : url

アニメーションの画像ソース。

frameHeightframeWidth が指定されていない場合、正方形のフレームが一列に並んだ長い画像とみなされます。そうでない場合は、複数の連続した行または長方形のフレームにすることができ、1つの行がなくなると、次の行が使用されます。

frameXframeY が指定された場合、その x/y 座標を左上隅とするフレーム行が使われる。


シグナル・ドキュメント

finished()

このシグナルはスプライトのアニメーションが終了したときに発せられます。

running がfalse に設定されているときや、loops プロパティがAnimatedSprite.Infinite に設定されているスプライトでは発せられません。

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


メソッドの説明

int advance()

スプライトのアニメーションを1フレーム進めます。


int pause()

スプライトのアニメーションを一時停止します。pausedtrue の場合は何もしません。

resume()も参照してください


int restart()

スプライトアニメーションを停止し、開始します。


int resume()

pausedtrue の場合、スプライトアニメーションを再開します。

pause()も参照して ください。


start()

スプライトアニメーションを開始します。アニメーションがすでに実行されている場合、このメソッドを呼び出しても効果はありません。

stop()も参照して ください。


stop()

スプライトアニメーションを停止します。アニメーションが実行中でない場合、このメソッドを呼んでも効果はありません。

start() も参照して ください。


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.