AnimatedSprite QML Type
绘制精灵动画。更多
Import Statement: | import QtQuick |
Inherits: |
属性
- currentFrame : int
- finishBehavior : enumeration
- frameCount : int
- frameDuration : int
- frameHeight : int
- frameRate : real
- frameSync : bool
- frameWidth : int
- frameX : int
- frameY : int
- interpolate : bool
- loops : int
- paused : bool
- reverse : bool
- running : bool
- source : url
信号
- finished()
方法
详细说明
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 来定义多个动画,而是自己封装一个动画。
另请参阅 "精灵动画"。
属性文档
finishBehavior : enumeration |
动画自行结束时的行为。
常量 | 说明 |
---|---|
FinishAtInitialFrame | 动画结束时会返回初始帧。这是默认行为。 |
FinishAtFinalFrame | 动画结束时会停留在最后一帧。 |
frameCount : int |
AnimatedSprite 中的帧数。
frameDuration : int |
动画每帧的持续时间(毫秒)。小于或等于0
的值无效。
如果frameRate 有效,则将用于计算帧的持续时间。如果不是,且 frameDuration 有效,则将使用frameDuration
。
更改此参数将重新启动动画。
frameHeight : int |
AnimatedSprite 中单个帧的高度。
如果它是文件中唯一的精灵,则可以省略。
frameRate : real |
动画中每秒显示的帧数。小于或等于0
的值无效。
如果frameRate
有效,它将用于计算帧的持续时间。如果不是,且frameDuration 有效,则将使用frameDuration
。
更改该参数将重新启动动画。
frameSync : bool |
如果true
,动画将没有持续时间。相反,每向屏幕渲染一帧,动画就前进一帧。这将使动画与绘制速度同步,而不是与流逝时间同步。
如果 frameSync 设置为 true,它将覆盖frameRate 和frameDuration 。
默认值为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 |
动画的图像源。
如果未指定frameHeight 和frameWidth ,则假定为一长排方形帧。否则,可以是多个连续行或矩形框,当一行用完时,将使用下一行。
信号文档
finished() |
该信号在精灵完成动画时发出。
如果运行设置为false
,或精灵的loops 属性设置为AnimatedSprite.Infinite
,则不会发出该信号。
注: 相应的处理程序是onFinished
。
方法文档
int advance() |
将精灵动画前进一帧。
int restart() |
先停止再启动精灵动画。
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.