Spec-Zone.ru › Qt 5.11

Тип QML AnimatedSprite

Отображает анимацию спрайта. Подробнее...

Заявление об импорте: import QtQuick 2.11
Наследуется от:

Item

  • Список всех членов, включая унаследованные

Свойства

  • 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

Методы

  • int advance()
  • int pause()
  • int restart()
  • int resume()

Подробное описание

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().

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, как верхний левый угол.

Документация по методам

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/archives/qt-5.11/qml-qtquick-animatedsprite.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API