Sur cette page

AnimatedSprite QML Type

Affiche une animation de sprite. En savoir plus...

Import Statement: import QtQuick
Inherits:

Item

Propriétés

Signaux

Méthodes

Description détaillée

AnimatedSprite permet le rendu et le contrôle d'animations fournies sous forme de plusieurs images dans un même fichier image. Vous pouvez les lire à une vitesse fixe, à la fréquence d'images de votre écran, ou faire défiler manuellement et contrôler la progression.

Prenons l'exemple de la feuille de sprites suivante :

Feuille de sprites comportant quatre images montrant des points bleus apparaissant progressivement

Elle peut être divisée en quatre images :

Feuille de sprites divisée en quatre images avec des bordures visibles

Pour lire chacune de ces images à une vitesse de 500 millisecondes par image, vous pouvez utiliser le code suivant :

CodeRésultat
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
}

Par défaut, les images sont interpolées (mélangées entre elles) afin de rendre l'animation plus fluide. Pour désactiver cette fonctionnalité, définissez ` interpolate ` sur ` false` :

CodeRésultat
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
    interpolate: false
}

Animation de chargement s'exécutant sans interpolation d'images

Pour contrôler la manière dont AnimatedSprite réagit à la mise à l'échelle, utilisez la propriété ` smooth `.

Notez que contrairement à SpriteSequence, le type AnimatedSprite n'utilise pas Sprite pour définir plusieurs animations, mais encapsule lui-même une seule animation.

Voir également Animations de sprites.

Documentation sur les propriétés

currentFrame : int

Lorsque la lecture est en pause, il est possible de passer manuellement à l'image suivante en définissant cette propriété ou en appelant la fonction ` advance()`.

finishBehavior : enumeration

Comportement lorsque l'animation se termine d'elle-même.

ConstanteDescription
FinishAtInitialFrameLorsque l'animation se termine, elle revient à l'image initiale. Il s'agit du comportement par défaut.
FinishAtFinalFrameLorsque l'animation se termine, elle reste sur l'image finale.

frameCount : int

Nombre d'images dans cette AnimatedSprite.

frameDuration : int

Durée de chaque image de l'animation, exprimée en millisecondes. Les valeurs inférieures ou égales à « 0 » ne sont pas valides.

Si la valeur « frameRate » est valide, elle sera utilisée pour calculer la durée des images. Dans le cas contraire, et si « frameDuration » est valide, la valeur « frameDuration » sera utilisée.

La modification de ce paramètre redémarrera l'animation.

frameHeight : int

Hauteur d'une image unique dans ce fichier AnimatedSprite.

Peut être omis s'il s'agit du seul sprite du fichier.

frameRate : real

Nombre d'images par seconde à afficher dans l'animation. Les valeurs inférieures ou égales à 0 ne sont pas valides.

Si la valeur « frameRate » est valide, elle sera utilisée pour calculer la durée des images. Si ce n'est pas le cas, et si la valeur « frameDuration » est valide, la valeur « frameDuration » sera utilisée.

La modification de ce paramètre redémarrera l’animation.

frameSync : bool

Si ` true`, l'animation n'aura pas de durée définie. À la place, elle avancera d'une image à chaque fois qu'une image est affichée à l'écran. Cela permet de la synchroniser avec la fréquence de rafraîchissement plutôt qu'avec le temps écoulé.

Si frameSync est défini sur true, il remplace à la fois frameRate et frameDuration.

La valeur par défaut est « false ».

La modification de ce paramètre redémarrera l’animation.

frameWidth : int

Largeur d'une image unique dans ce fichier AnimatedSprite.

Peut être omis s'il s'agit du seul sprite du fichier.

frameX : int

La coordonnée X dans le fichier image de la première image de l'AnimatedSprite.

Peut être omise si la première image commence dans le coin supérieur gauche du fichier.

frameY : int

La coordonnée Y dans le fichier image de la première image de l'AnimatedSprite.

Elle peut être omise si la première image commence dans le coin supérieur gauche du fichier.

interpolate : bool

Si cette option est activée, une interpolation sera effectuée entre les images du sprite afin de rendre l'animation plus fluide.

La valeur par défaut est « true ».

loops : int

Une fois l'animation lue ce nombre de fois, elle s'arrêtera automatiquement. Les valeurs négatives ne sont pas valides.

Si cette option est définie sur « AnimatedSprite.Infinite », l'animation ne s'arrêtera pas d'elle-même.

La valeur par défaut est AnimatedSprite.Infinite

paused : bool

Lorsque la lecture est en pause, il est possible de passer manuellement à l'image suivante.

La valeur par défaut est false.

reverse : bool

Si true, l'animation sera lue à l'envers.

La valeur par défaut est false.

running : bool

Si le sprite est animé ou non.

La valeur par défaut est « true ».

source : url

La source de l'image pour l'animation.

Si frameHeight et frameWidth ne sont pas spécifiés, on suppose qu'il s'agit d'une seule longue rangée d'images carrées. Sinon, il peut s'agir de plusieurs rangées contiguës ou d'images rectangulaires ; lorsqu'une rangée est épuisée, la suivante est utilisée.

Si frameX et frameY sont spécifiés, la ligne d’images sera extraite en prenant ces coordonnées x/y comme coin supérieur gauche.

Documentation sur les signaux

finished()

Ce signal est émis lorsque l'animation du sprite est terminée.

Il n'est pas émis lorsque l'exécution est définie sur « false », ni pour les sprites dont la propriété « loops » est définie sur « AnimatedSprite.Infinite ».

Remarque : le gestionnaire correspondant est onFinished.

Documentation de la méthode

void advance(int frames = 1)

Fait avancer l'animation du sprite d'un nombre spécifié d'frames.

void pause()

Met en pause l'animation du sprite. Cette fonction n'a aucun effet si la propriété « paused » est définie sur « true ».

Voir également resume().

void restart()

Arrête, puis relance l'animation du sprite.

void resume()

Reprend l'animation du sprite si paused est true; sinon, cette fonction ne fait rien.

Voir également pause().

void start()

Lance l'animation du sprite. Si l'animation est déjà en cours, l'appel de cette méthode n'a aucun effet.

Voir aussi stop().

void stop()

Arrête l'animation du sprite. Si l'animation n'est pas en cours d'exécution, l'appel de cette méthode n'a aucun effet.

Voir aussi 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.