AnimatedSprite QML Type
スプライトのアニメーションを描画します。もっと詳しく...
Import Statement: | import QtQuick |
Inherits: |
プロパティ
- currentFrame : int
- finishBehavior : enumeration
- frameCount : int
- frameDuration : int
- frameHeight : int
- frameRate : qreal
- frameSync : bool
- frameWidth : int
- frameX : int
- frameY : int
- interpolate : bool
- loops : int
- paused : bool
- reverse : bool
- running : bool
- source : url
シグナル
- finished()
メソッド
詳細説明
AnimatedSpriteは、同じ画像ファイル内の複数のフレームとして提供されるアニメーションのレンダリングと制御を行う。固定速度で再生したり、ディスプレイのフレーム・レートで再生したり、手動でアニメーションを進めたり、進行を制御したりすることができる。
次のスプライト・シートを考えてみましょう:
これは4つのフレームに分割できます:
それぞれのフレームを1フレーム500ミリ秒の速度で再生するには、次のコードを使います:
コード | 結果 |
---|---|
AnimatedSprite { source: "loading.png" frameWidth: 64 frameHeight: 64 frameCount: 4 frameDuration: 500 } |
デフォルトでは、アニメーションがより滑らかに見えるように、フレームは補間(ブレンド)されます。これを無効にするには、interpolate をfalse
に設定します:
コード | 結果 |
---|---|
AnimatedSprite { source: "loading.png" frameWidth: 64 frameHeight: 64 frameCount: 4 frameDuration: 500 interpolate: false } |
AnimatedSpriteがスケーリングされたときにどのように反応するかを制御するには、smooth プロパティを使用します。
SpriteSequence とは異なり、AnimatedSprite タイプは、Sprite を使用して複数のアニメーションを定義するのではなく、単一のアニメーション自体をカプセル化することに注意してください。
スプライトのアニメーションも参照してください 。
プロパティ・ドキュメント
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 に設定すると、frameRate とframeDuration の両方を上書きします。
デフォルトは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 |
アニメーションの画像ソース。
frameHeight とframeWidth が指定されていない場合、正方形のフレームが一列に並んだ長い画像とみなされます。そうでない場合は、複数の連続した行または長方形のフレームにすることができ、1つの行がなくなると、次の行が使用されます。
シグナル・ドキュメント
finished() |
このシグナルはスプライトのアニメーションが終了したときに発せられます。
running がfalse
に設定されているときや、loops プロパティがAnimatedSprite.Infinite
に設定されているスプライトでは発せられません。
注意: 対応するハンドラはonFinished
です。
メソッドの説明
int advance() |
スプライトのアニメーションを1フレーム進めます。
int restart() |
スプライトアニメーションを停止し、開始します。
start() |
スプライトアニメーションを開始します。アニメーションがすでに実行されている場合、このメソッドを呼び出しても効果はありません。
stop()も参照して ください。
stop() |
スプライトアニメーションを停止します。アニメーションが実行中でない場合、このメソッドを呼んでも効果はありません。
start() も参照して ください。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。