Тип QML AnimatedSprite
Отображает анимацию спрайта. Подробнее...
| Заявление об импорте: | import QtQuick 2.14 |
| Наследует: |
Свойства
- currentFrame : int
- 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 для определения нескольких анимаций, а вместо этого encapsulates одну анимацию.
См. также Анимации спрайтов.
Документация по свойствам
currentFrame : int
При приостановке текущий кадр можно вручную продвигать, устанавливая это свойство или вызывая advance().
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 в качестве верхнего левого угла.
Документация по сигналам
finished()
Этот сигнал испускается, когда спрайт закончил анимацию.
Он не испускается, когда running установлено в false, ни для спрайтов, у которых свойство loops установлено в AnimatedSprite.Infinite.
Этот сигнал был представлен в Qt 5.12.
Документация по методам
int advance()
Перемещает анимацию спрайта на один кадр.
int pause()
Приостанавливает анимацию спрайта. Это ничего не делает, если paused равно true.
См. также resume().
int restart()
Останавливает, а затем запускает анимацию спрайта.
int resume()
Возобновляет анимацию спрайта, если paused true; в противном случае ничего не делает.
См. также pause().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtquick-animatedsprite.html