Spec-Zone.ru › Qt 5.14

Тип QML AnimatedSprite

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

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

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

Сигналы

  • finished()

Методы

  • 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 для определения нескольких анимаций, а вместо этого 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

Spec-Zone.ru

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