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 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.
Konstante | Beschreibung |
---|---|
FinishAtInitialFrame | Wenn die Animation beendet ist, kehrt sie zum Ausgangsbild zurück. Dies ist das Standardverhalten. |
FinishAtFinalFrame | Wenn 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() |
int restart() |
Hält die Sprite-Animation an und startet sie dann.
int resume() |
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.