AnimatedSprite QML Type

Zeichnet eine Sprite-Animation. Mehr...

Import Statement: import QtQuick
Inherits:

Item

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

AnimatedSprite bietet Rendering und Kontrolle über Animationen, die als mehrere Frames in derselben Bilddatei bereitgestellt werden. Sie können sie mit einer festen Geschwindigkeit abspielen, mit der Bildwiederholrate Ihres Bildschirms, oder manuell weiterschalten und den Fortschritt kontrollieren.

Betrachten Sie das folgende Sprite-Sheet:

Es kann in vier Einzelbilder aufgeteilt werden:

Um jedes dieser Bilder mit einer Geschwindigkeit von 500 Millisekunden pro Bild 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 (zusammengefügt), um die Animation glatter erscheinen zu lassen. Um dies zu deaktivieren, setzen Sie interpolate auf false:

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

Um zu steuern, wie AnimatedSprite auf eine Skalierung reagiert, verwenden Sie die Eigenschaft smooth.

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

Siehe auch Sprite-Animationen.

Dokumentation der Eigenschaften

currentFrame : int

Wenn die Animation pausiert, kann das aktuelle Bild manuell weitergeschaltet werden, indem diese Eigenschaft gesetzt oder advance() aufgerufen wird.


finishBehavior : enumeration

Das Verhalten, wenn die Animation von selbst beendet wird.

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

frameCount : int

Anzahl der Frames in diesem AnimatedSprite.


frameDuration : int

Dauer der einzelnen Frames der Animation in Millisekunden. Werte kleiner als oder gleich 0 sind ungültig.

Wenn frameRate gültig ist, wird sie zur Berechnung der Dauer der Frames verwendet. Wenn nicht und frameDuration gültig ist, wird frameDuration verwendet.

Durch Ändern dieses Parameters wird die Animation neu gestartet.


frameHeight : int

Höhe eines Einzelbildes in diesem AnimatedSprite.

Kann weggelassen werden, wenn es das einzige Sprite in der Datei ist.


frameRate : real

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

Wenn frameRate gültig ist, wird es verwendet, um die Dauer der Frames zu berechnen. Wenn nicht und frameDuration gültig ist, wird frameDuration verwendet.

Wenn Sie diesen Parameter ändern, wird die Animation neu gestartet.


frameSync : bool

Wenn true angegeben wird, 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 Bildrate synchronisiert und nicht mit der verstrichenen Zeit.

Wenn frameSync auf true gesetzt ist, hat es Vorrang vor frameRate und frameDuration.

Die Voreinstellung ist false.

Wenn Sie diesen Parameter ändern, wird die Animation neu gestartet.


frameWidth : int

Breite eines Einzelbildes in diesem AnimatedSprite.

Kann weggelassen werden, wenn es das einzige Sprite in der Datei ist.


frameX : int

Die X-Koordinate in der Bilddatei des ersten Frames des AnimatedSprite.

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


frameY : int

Die Y-Koordinate in der Bilddatei des ersten Bildes von AnimatedSprite.

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


interpolate : bool

Wenn true, wird zwischen den Sprite-Frames interpoliert, um die Animation flüssiger erscheinen zu lassen.

Die Voreinstellung ist true.


loops : int

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

Wenn dieser Wert auf AnimatedSprite.Infinite gesetzt ist, hört die Animation nicht von selbst auf zu laufen.

Standardwert ist AnimatedSprite.Infinite


paused : bool

Wenn die Animation pausiert, kann das aktuelle Bild manuell weitergeschaltet werden.

Die Voreinstellung ist false.


reverse : bool

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

Die Voreinstellung ist false.


running : bool

Ob das Sprite animiert ist oder nicht.

Standardwert ist true.


source : url

Die Bildquelle für die Animation.

Wenn frameHeight und frameWidth nicht angegeben sind, wird angenommen, dass es sich um eine einzelne lange Reihe von quadratischen Bildern handelt. Andernfalls kann es sich um mehrere zusammenhängende Reihen oder rechteckige Frames handeln; wenn eine Reihe zu Ende geht, wird die nächste verwendet.

Wenn frameX und frameY angegeben sind, wird die Reihe von Rahmen mit dieser x/y-Koordinate als obere linke Ecke genommen.


Signal Dokumentation

finished()

Dieses Signal wird ausgegeben, wenn das Sprite seine Animation beendet hat.

Es wird nicht ausgegeben, wenn running auf false gesetzt ist, und auch nicht bei Sprites, deren loops Eigenschaft auf AnimatedSprite.Infinite gesetzt ist.

Hinweis: Der entsprechende Handler ist onFinished.


Methode Dokumentation

int advance()

Spult die Sprite-Animation um ein Bild vor.


int pause()

Hält die Sprite-Animation an. Dies bewirkt nichts, wenn paused auf true steht.

Siehe auch resume().


int restart()

Hält die Sprite-Animation an und startet sie dann.


int resume()

Setzt die Sprite-Animation fort, wenn paused gleich true ist; andernfalls wird nichts getan.

Siehe auch pause().


start()

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

Siehe auch stop().


stop()

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

Siehe auch start().


© 2025 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.