このページでは

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 の1フレームの高さ。

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

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 です。

メソッド・ドキュメント

void advance(int frames = 1)

スプライトのアニメーションを指定されたframes だけ進めます。

void pause()

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

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

void restart()

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

void resume()

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

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

void start()

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

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

void stop()

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

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

© 2026 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.