En esta página

AnimatedSprite QML Type

Dibuja una animación de sprite. Más...

Import Statement: import QtQuick
Inherits:

Item

Propiedades

Señales

Métodos

Descripción detallada

AnimatedSprite proporciona renderizado y control sobre animaciones que se proporcionan como múltiples fotogramas en el mismo archivo de imagen. Puede reproducirlo a una velocidad fija, a la velocidad de fotogramas de su pantalla, o avanzar manualmente y controlar el progreso.

Considere la siguiente hoja de Sprite:

Se puede dividir en cuatro fotogramas:

Para reproducir cada uno de estos fotogramas a una velocidad de 500 milisegundos por fotograma, se puede utilizar el siguiente código:

CódigoResultado
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
}

Por defecto, los fotogramas se interpolan (se mezclan) para que la animación parezca más suave. Para desactivar esto, establezca interpolate a false:

CódigoResultado
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
    interpolate: false
}

Para controlar cómo responde AnimatedSprite al ser escalado, utilice la propiedad smooth.

Tenga en cuenta que a diferencia de SpriteSequence, el tipo AnimatedSprite no utiliza Sprite para definir múltiples animaciones, sino que encapsula una única animación.

Ver también Animaciones de Sprite.

Documentación de propiedades

currentFrame : int

Cuando está en pausa, el fotograma actual se puede avanzar manualmente estableciendo esta propiedad o llamando a advance().

finishBehavior : enumeration

El comportamiento cuando la animación termina por sí sola.

ConstanteDescripción
FinishAtInitialFrameCuando la animación termina vuelve al cuadro inicial. Este es el comportamiento por defecto.
FinishAtFinalFrameCuando la animación termina se mantiene en el cuadro final.

frameCount : int

Número de fotogramas en este AnimatedSprite.

frameDuration : int

Duración de cada fotograma de la animación en milisegundos. Los valores inferiores o iguales a 0 no son válidos.

Si frameRate es válido, se utilizará para calcular la duración de los fotogramas. Si no lo es, y frameDuration es válido, se utilizará frameDuration.

Al cambiar este parámetro se reiniciará la animación.

frameHeight : int

Altura de un único fotograma en este AnimatedSprite.

Puede omitirse si es el único sprite del archivo.

frameRate : real

Fotogramas por segundo a mostrar en la animación. Los valores inferiores o iguales a 0 no son válidos.

Si frameRate es válido, se utilizará para calcular la duración de los fotogramas. Si no, y frameDuration es válido, se utilizará frameDuration.

Cambiar este parámetro reiniciará la animación.

frameSync : bool

Si true, la animación no tendrá duración. En su lugar, la animación avanzará un fotograma cada vez que se renderice un fotograma en la pantalla. Esto la sincroniza con la tasa de pintura en oposición al tiempo transcurrido.

Si frameSync se establece en true, anula tanto frameRate como frameDuration.

Por defecto es false.

Cambiar este parámetro reiniciará la animación.

frameWidth : int

Anchura de un solo fotograma en este AnimatedSprite.

Puede omitirse si es el único sprite del archivo.

frameX : int

La coordenada X en el archivo de imagen del primer fotograma de AnimatedSprite.

Puede omitirse si el primer fotograma comienza en la esquina superior izquierda del archivo.

frameY : int

La coordenada Y en el archivo de imagen del primer fotograma de AnimatedSprite.

Puede omitirse si el primer fotograma comienza en la esquina superior izquierda del archivo.

interpolate : bool

Si es true, la interpolación se producirá entre los fotogramas del sprite para hacer que la animación parezca más suave.

Por defecto es true.

loops : int

Después de reproducir la animación tantas veces, la animación se detendrá automáticamente. Los valores negativos no son válidos.

Si se establece en AnimatedSprite.Infinite, la animación no se detendrá por sí misma.

Por defecto es AnimatedSprite.Infinite

paused : bool

Cuando está en pausa, el fotograma actual puede avanzarse manualmente.

Por defecto es false.

reverse : bool

Si true, la animación se reproducirá en sentido inverso.

Por defecto es false.

running : bool

Si el sprite se está animando o no.

Por defecto es true

source : url

La fuente de la imagen para la animación.

Si no se especifica frameHeight y frameWidth, se asume que es una única fila larga de fotogramas cuadrados. En caso contrario, pueden ser múltiples filas contiguas o fotogramas rectangluares, cuando se acabe una fila se utilizará la siguiente.

Si se especifican frameX y frameY, se tomará la fila de cuadros con esa coordenada x/y como esquina superior izquierda.

Documentación de la señal

finished()

Esta señal se emite cuando el sprite ha terminado de animarse.

No se emite cuando la propiedad running está establecida a false, ni para sprites cuya propiedad loops está establecida a AnimatedSprite.Infinite.

Nota: El manejador correspondiente es onFinished.

Documentación del método

void advance(int frames = 1)

Avanza la animación del sprite un número especificado de frames.

void pause()

Pausa la animación del sprite. Esto no hace nada si paused es true.

Ver también resume().

void restart()

Detiene y luego inicia la animación del sprite.

void resume()

Reanuda la animación del sprite si paused es true; en caso contrario, no hace nada.

Véase también pause().

void start()

Inicia la animación del sprite. Si la animación ya se está ejecutando, llamar a este método no tiene ningún efecto.

Ver también stop().

void stop()

Detiene la animación del sprite. Si la animación no se está ejecutando, llamar a este método no tiene ningún efecto.

Véase también start().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.