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 : qreal

アニメーションで表示する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() も参照して ください。


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