动画精灵 QML 类型

绘制精灵动画。 更多...

导入语句import QtQuick
继承

Item

属性

信号

方法

详细描述

AnimatedSprite 提供了对于由同一图像文件中的多个帧提供的动画的渲染和控制器。您可以以固定的速度播放,以显示器的帧速率播放,或手动前进并控制进度。

考虑以下精灵表

它可以分为四个帧

要以每帧 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 来定义多个动画,而是封装了一个单个动画自身。

另请参阅精灵动画.

属性文档

currentFrame : int

当动画暂停时,可以通过设置此属性或调用advance()来手动前进当前帧。


finishBehavior : 枚举

动画自行结束时的情况。

常量描述
FinishAtInitialFrame当动画结束时返回初始帧。这是默认行为。
FinishAtFinalFrame当动画结束时停留在最后一帧。

frameCount : int

AnimatedSprite中的帧数。


frameDuration : int

动画每一帧的持续时间(毫秒)。小于或等于0的值无效。

如果frameRate有效,它将用于计算帧的持续时间。如果无效,并且frameDuration有效,则使用frameDuration

更改此参数将重新开始动画。


frameHeight : int

AnimatedSprite中单个帧的高度。

如果这是文件中唯一的精灵,则可以省略。


frameRate : qreal

动画中的每秒帧数。小于或等于0的值无效。

如果frameRate有效,它将用于计算帧的持续时间。如果无效,并且frameDuration有效,则使用frameDuration

更改此参数将重新开始动画。


frameSync : bool

如果true,动画将没有持续时间。相反,每当帧渲染到屏幕上时,动画将前进一帧。这将使其与绘制速率同步,而不是与流逝的时间同步。

如果frameSync被设置为true,它将覆盖frameRateframeDuration

默认为false

更改此参数将重新开始动画。


frameWidth : int

AnimatedSprite中单个帧的宽度。

如果这是文件中唯一的精灵,则可以省略。


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,则假定它是一个单个的长方形方格行。否则,它可以是多行连续的行或矩形形,当一行结束时,将使用下一行。

如果指定了 frameXframeY,则将根据该 x/y 坐标作为上左角的框架行。


信号文档

finished()

当精灵完成动画播放时发出此信号。

当 running 设置为 false 时不会发出此信号,也不会为那些将 loops 属性设置为 AnimatedSprite.Infinite 的精灵发出。

注意:相应的处理程序是 onFinished


方法文档

int advance()

将精灵动画向前推进一帧。


int pause()

暂停精灵动画。如果 pausedtrue,则此操作将不起作用。

另请参阅 resume()。


int restart()

停止,然后启动精灵动画。


int resume()

如果 pausedtrue,则恢复精灵动画;否则,此操作不起作用。

另请参阅 pause()。


start()

启动精灵动画。如果动画已经在运行,调用此方法不会有任何效果。

另请参阅 stop()。


stop()

停止精灵动画。如果动画未运行,调用此方法不会有任何效果。

另请参阅 start()。


© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 许可的。Qt及其相关标志是 The Qt Company Ltd. 在芬兰以及/或全球其他国家的商标。所有其他商标均为各自所有者的财产。