Тип QML AnimatedSprite
Отображает анимацию спрайта. Подробнее...
| Заявление об импорте: | import QtQuick 2.0 |
| Наследует: |
Свойства
- currentFrame : int
- finishBehavior : перечисление
- 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 предоставляет возможности отрисовки и управления анимациями, которые предоставляются как несколько кадров в одном файле изображения. Вы можете воспроизводить его с фиксированной скоростью, со скоростью кадров вашего дисплея или вручную продвигать и контролировать процесс.
Рассмотрим следующий спрайт-лист:
Он может быть разделен на четыре кадра:
Чтобы воспроизводить каждый из этих кадров со скоростью 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, оно переопределяет как frameRate, так и frameDuration.
По умолчанию false.
Изменение этого параметра перезапустит анимацию.
frameWidth : int
Ширина одного кадра в этом AnimatedSprite.
Можно опустить, если это единственный спрайт в файле.
frameX : int
Координата X в файле изображения первого кадра AnimatedSprite.
Можно опустить, если первый кадр начинается в верхнем левом углу файла.
frameY : int
Координата Y в файле изображения первого кадра AnimatedSprite.
Можно опустить, если первый кадр начинается в верхнем левом углу файла.
interpolate : bool
Если true, произойдет интерполяция между кадрами спрайта, чтобы анимация выглядела плавнее.
По умолчанию true.
loops : int
После воспроизведения анимации столько раз, анимация автоматически остановится. Отрицательные значения недействительны.
Если это установлено в AnimatedSprite.Infinite, анимация не будет останавливаться самостоятельно.
По умолчанию AnimatedSprite.Infinite
paused : bool
При приостановке текущий кадр можно вручную продвинуть.
По умолчанию false.
reverse : bool
Если true, анимация будет воспроизводиться в обратном порядке.
По умолчанию false.
running : bool
Анимируется ли спрайт или нет.
По умолчанию true
source : url
Источник изображения для анимации.
Если frameHeight и frameWidth не указаны, предполагается, что это один длинный ряд квадратных кадров. В противном случае это могут быть несколько смежных строк или прямоугольных кадров, когда одна строка заканчивается, следующая будет использоваться.
Если frameX и frameY указаны, строка кадров будет взята с указанной координатой x/y в качестве верхнего левого угла.
Документация по сигналам
[since 5.12] finished()
Этот сигнал генерируется, когда анимация спрайта завершается.
Он не излучается, когда свойство running установлено в false, а также для спрайтов, у которых свойство loops установлено в AnimatedSprite.Infinite.
Примечание: Соответствующий обработчик — onFinished.
Этот сигнал был введён в Qt 5.12.
Документация по методам
int advance()
Передвигает анимацию спрайта на один кадр.
int pause()
Приостанавливает анимацию спрайта. Это ничего не делает, если свойство paused установлено в true.
См. также resume().
int restart()
Останавливает и затем запускает анимацию спрайта.
int resume()
Возобновляет анимацию спрайта, если свойство paused установлено в true; в противном случае ничего не делает.
См. также pause().
[since 5.15] start()
Запускает анимацию спрайта. Если анимация уже запущена, вызов этого метода не оказывает никакого эффекта.
Этот метод был введён в Qt 5.15.
См. также stop().
[since 5.15] stop()
Останавливает анимацию спрайта. Если анимация не запущена, вызов этого метода не оказывает никакого эффекта.
Этот метод был введён в Qt 5.15.
См. также start().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick-animatedsprite.html