Auf dieser Seite

AnimatedSprite QML Type

Zeichnet eine Sprite-Animation. Mehr...

Import Statement: import QtQuick
Inherits:

Item

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

AnimatedSprite ermöglicht die Darstellung und Steuerung von Animationen, die als mehrere Einzelbilder in derselben Bilddatei vorliegen. Sie können die Animation mit einer festen Geschwindigkeit, mit der Bildwiederholfrequenz Ihres Bildschirms oder manuell abspielen und den Fortschritt steuern.

Betrachten Sie das folgende Sprite-Sheet:

Sprite-Sheet mit vier Frames, die nach und nach erscheinende blaue Punkte zeigen

Es lässt sich in vier Einzelbilder unterteilen:

Sprite-Sheet, unterteilt in vier Frames mit sichtbaren Rändern

Um jedes dieser Einzelbilder mit einer Geschwindigkeit von 500 Millisekunden pro Einzelbild abzuspielen, kann der folgende Code verwendet werden:

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

Standardmäßig werden die Frames interpoliert (miteinander überblendet), damit die Animation flüssiger wirkt. Um dies zu deaktivieren, setzen Sie „ interpolate “ auf „ false “:

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

Ladeanimation wird ohne Bildinterpolation abgespielt

Um zu steuern, wie „AnimatedSprite“ auf Skalierungen reagiert, verwenden Sie die Eigenschaft „ smooth “.

Beachten Sie, dass der Typ „AnimatedSprite“ im Gegensatz zu „ SpriteSequence “ nicht „ Sprite “ verwendet, um mehrere Animationen zu definieren, sondern stattdessen selbst eine einzelne Animation kapselt.

Siehe auch „Sprite-Animationen“.

Eigenschaftsdokumentation

currentFrame : int

Im Pausenmodus kann der aktuelle Frame manuell weitergeschaltet werden, indem diese Eigenschaft festgelegt oder die Methode ` advance()` aufgerufen wird.

finishBehavior : enumeration

Das Verhalten, wenn die Animation von selbst endet.

KonstanteBeschreibung
FinishAtInitialFrameWenn die Animation endet, kehrt sie zum Startbild zurück. Dies ist das Standardverhalten.
FinishAtFinalFrameWenn die Animation endet, bleibt sie auf dem letzten Bild stehen.

frameCount : int

Anzahl der Bilder in diesem Video: AnimatedSprite.

frameDuration : int

Dauer jedes Einzelbilds der Animation in Millisekunden. Werte, die kleiner oder gleich „ 0 “ sind, sind ungültig.

Ist „ frameRate “ gültig, wird dieser Wert zur Berechnung der Dauer der Einzelbilder herangezogen. Ist dies nicht der Fall und ist „frameDuration“ gültig, wird „ frameDuration “ verwendet.

Durch Ändern dieses Parameters wird die Animation neu gestartet.

frameHeight : int

Höhe eines einzelnen Frames in diesem „ AnimatedSprite “.

Kann weggelassen werden, wenn es sich um das einzige Sprite in der Datei handelt.

frameRate : real

Anzahl der Bilder pro Sekunde, die in der Animation angezeigt werden sollen. Werte kleiner oder gleich 0 sind ungültig.

Ist „ frameRate “ gültig, wird dieser Wert zur Berechnung der Dauer der Frames verwendet. Ist dies nicht der Fall und ist „ frameDuration “ gültig, wird „ frameDuration “ verwendet.

Durch Ändern dieses Parameters wird die Animation neu gestartet.

frameSync : bool

Wenn „ true “ gesetzt ist, hat die Animation keine Dauer. Stattdessen wird die Animation jedes Mal um ein Bild weitergeschaltet, wenn ein Bild auf dem Bildschirm gerendert wird. Dadurch wird sie mit der Bildwiederholrate synchronisiert und nicht mit der verstrichenen Zeit.

Wenn „frameSync“ auf „true“ gesetzt ist, überschreibt dies sowohl „ frameRate “ als auch „ frameDuration “.

Der Standardwert ist „ false “.

Durch Ändern dieses Parameters wird die Animation neu gestartet.

frameWidth : int

Breite eines einzelnen Frames in diesem AnimatedSprite.

Kann weggelassen werden, wenn es sich um das einzige Sprite in der Datei handelt.

frameX : int

Die X-Koordinate im Bild der ersten Bildsequenz von AnimatedSprite.

Kann weggelassen werden, wenn das erste Bild in der oberen linken Ecke der Datei beginnt.

frameY : int

Die Y-Koordinate im Bild der ersten Bildsequenz von AnimatedSprite.

Kann weggelassen werden, wenn das erste Bild in der oberen linken Ecke der Datei beginnt.

interpolate : bool

Wenn „true“, wird zwischen den Sprite-Frames eine Interpolation durchgeführt, damit die Animation flüssiger wirkt.

Standardmäßig ist der Wert „true“.

loops : int

Nachdem die Animation so oft abgespielt wurde, wird sie automatisch angehalten. Negative Werte sind ungültig.

Wenn hier „ AnimatedSprite.Infinite “ eingestellt ist, wird die Animation nicht von selbst beendet.

Die Standardeinstellung lautet AnimatedSprite.Infinite

paused : bool

Im Pausenmodus kann der aktuelle Frame manuell weitergeschaltet werden.

Die Standardeinstellung lautet „ false “.

reverse : bool

Wenn true ist, wird die Animation rückwärts abgespielt.

Die Standardeinstellung ist „ false “.

running : bool

Ob das Sprite animiert wird oder nicht.

Standardwert ist „true“

source : url

Die Bildquelle für die Animation.

Wenn frameHeight und frameWidth nicht angegeben sind, wird davon ausgegangen, dass es sich um eine einzige lange Reihe quadratischer Frames handelt. Andernfalls kann es sich um mehrere zusammenhängende Reihen oder rechteckige Frames handeln; wenn eine Reihe zu Ende ist, wird die nächste verwendet.

Wenn frameX und frameY angegeben sind, wird die Bildreihe mit diesen x/y-Koordinaten als linker oberer Ecke verwendet.

Signal-Dokumentation

finished()

Dieses Signal wird ausgelöst, wenn die Animation des Sprites beendet ist.

Es wird nicht ausgegeben, wenn „running“ auf „ false “ gesetzt ist, und auch nicht für Sprites, deren Eigenschaft „ loops “ auf „ AnimatedSprite.Infinite “ gesetzt ist.

Hinweis: Der entsprechende Handler lautet „ onFinished “.

Methodendokumentation

void advance(int frames = 1)

Verschiebt die Sprite-Animation um eine angegebene Anzahl von „ frames “.

void pause()

Hält die Sprite-Animation an. Dies hat keine Auswirkung, wenn „ paused “ auf „ true “ gesetzt ist.

Siehe auch „ resume()“.

void restart()

Hält die Sprite-Animation an und startet sie anschließend wieder.

void resume()

Setzt die Sprite-Animation fort, wenn „ paused “ auf „ true “ gesetzt ist; andernfalls hat diese Funktion keine Auswirkung.

Siehe auch „ pause()“.

void start()

Startet die Sprite-Animation. Wenn die Animation bereits läuft, hat der Aufruf dieser Methode keine Auswirkung.

Siehe auch „ stop()“.

void stop()

Hält die Sprite-Animation an. Wenn die Animation nicht läuft, hat der Aufruf dieser Methode keine Auswirkung.

Siehe auch ` 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.