AnimatedSprite QML Type
Zeichnet eine Sprite-Animation. Mehr...
| Import Statement: | import QtQuick |
| Inherits: |
Eigenschaften
- currentFrame : int
- finishBehavior : enumeration
- frameCount : int
- frameDuration : int
- frameHeight : int
- frameRate : real
- frameSync : bool
- frameWidth : int
- frameX : int
- frameY : int
- interpolate : bool
- loops : int
- paused : bool
- reverse : bool
- running : bool
- source : url
Signale
- finished()
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:
| Code | Ergebnis |
|---|---|
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:
| Code | Ergebnis |
|---|---|
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 Eigenschaft
currentFrame : int
Im angehaltenen Zustand kann der aktuelle Frame manuell weitergeschaltet werden, indem diese Eigenschaft gesetzt oder advance() aufgerufen wird.
finishBehavior : enumeration
Das Verhalten, wenn die Animation von selbst beendet wird.
| Konstante | Beschreibung |
|---|---|
FinishAtInitialFrame | Wenn die Animation beendet ist, kehrt sie zum Anfangsbild zurück. Dies ist das Standardverhalten. |
FinishAtFinalFrame | Wenn die Animation endet, bleibt sie auf dem letzten Frame stehen. |
frameCount : int
Anzahl der Bilder in diesem AnimatedSprite.
frameDuration : int
Dauer der einzelnen Bilder 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 Bilder verwendet. Wenn nicht und frameDuration gültig ist, wird frameDuration verwendet.
Wenn Sie diesen Parameter ändern, 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
Bilder 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 zur Berechnung der Dauer der Bilder verwendet. Wenn nicht und frameDuration gültig ist, wird frameDuration verwendet.
Wenn Sie diesen Parameter ändern, wird die Animation neu gestartet.
frameSync : bool
Wenn true gewählt 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 Bildes von 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 oberen linken 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 gestoppt. 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
Im angehaltenen Zustand kann der aktuelle Frame manuell weitergeschaltet werden.
Die Voreinstellung ist false.
reverse : bool
Wenn true, wird die Animation rückwärts abgespielt.
Die Voreinstellung ist false.
running : bool
Ob das Sprite animiert ist oder nicht.
Standard 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 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 für Sprites, deren loops Eigenschaft auf AnimatedSprite.Infinite gesetzt ist.
Hinweis: Der entsprechende Handler ist onFinished.
Dokumentation der Methode
void advance(int frames = 1)
Verschiebt die Sprite-Animation um eine bestimmte Anzahl von frames.
void pause()
Hält die Sprite-Animation an. Dies bewirkt nichts, wenn paused true ist.
Siehe auch resume().
void restart()
Stoppt und startet dann die Sprite-Animation.
void resume()
Setzt die Sprite-Animation fort, wenn paused true ist; andernfalls geschieht nichts.
Siehe auch pause().
void start()
Startet die Animation des Sprites. Wenn die Animation bereits läuft, hat der Aufruf dieser Methode keine Wirkung.
Siehe auch stop().
void stop()
Hält die Animation des Sprites an. Wenn die Animation nicht läuft, hat der Aufruf dieser Methode keine Wirkung.
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.