Spec-Zone.ru › Qt 5.13

Тип QML AnimatedSprite

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

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

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.13/qml-qtquick-animatedsprite.html

Spec-Zone.ru

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