Тип QML AnimatedSprite
Отображает анимацию спрайта. Подробнее...
| Заявление об импорте: | import QtQuick 2.13 |
| Наследует: |
Свойства
- 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.13/qml-qtquick-animatedsprite.html