LottieAnimation QML Type

Ein Bodymovin-Player für Qt. Mehr...

Import Statement: import Qt.labs.lottieqt 1.0
Inherits:

Item

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

Der Typ LottieAnimation zeigt Dateien im Bodymovin-Format an.

LottieAnimation wird verwendet, um Bodymovin-Dateien zu laden und zu rendern, die aus Adobe After Effects exportiert wurden. Derzeit wird nur eine Teilmenge der vollständigen Bodymovin-Spezifikation unterstützt. Die bemerkenswertesten Abweichungen sind:

  • Nur Shape-Ebene unterstützt
  • Es wird nur der Integer-Frame-Modus einer Timeline unterstützt (reale Frame-Nummern und Zeiten werden auf die nächste Ganzzahl gerundet)
  • Ausdrücke werden nicht unterstützt

Die vollständige Liste der Abweichungen finden Sie im Abschnitt Einschränkungen.

Beispiel für die Verwendung

Das folgende Beispiel zeigt eine einfache Verwendung des Typs LottieAnimation

LottieAnimation {
    loops: 2
    quality: LottieAnimation.MediumQuality
    source: "animation.json"
    autoPlay: false
    onStatusChanged: {
        if (status === LottieAnimation.Ready) {
            // any acvities needed before
            // playing starts go here
            gotoAndPlay(startFrame);
        }
    }
    onFinished: {
        console.log("Finished playing")
    }
}

Hinweis: Wenn Sie die Breite oder Höhe des Elements ändern, ändert sich die Größe der Animation darin nicht. Es ist auch nicht möglich, den Inhalt innerhalb eines LottieAnimation -Elements auszurichten. Um dies zu erreichen, positionieren Sie die Animation z.B. innerhalb eines Item.

Rendering-Leistung

Intern werden die gerenderten Frame-Daten zwischengespeichert, um die Leistung zu verbessern. Sie können die Speichernutzung kontrollieren, indem Sie die Umgebungsvariable QLOTTIE_RENDER_CACHE_SIZE setzen (Standardwert ist 2).

Sie können die Rendering-Leistung überwachen, indem Sie zwei Protokollierungskategorien einschalten:

  • qt.lottieqt.bodymovin.render - Liefert Informationen darüber, wie die Animation gerendert wird
  • qt.lottieqt.bodymovin.render.thread - Gibt Auskunft darüber, wie der Rendering-Prozess abläuft.

Insbesondere können Sie überwachen, ob der Frame-Cache ständig voll ist, oder ob der Rendering-Prozess warten muss, bis die Frames bereit sind. Der erste Fall deutet darauf hin, dass die Animation zu komplex ist und das Rendering nicht mit dem Tempo mithalten kann. Versuchen Sie, die Animation zu vereinfachen, oder optimieren Sie die QML-Szene.

Eigenschaft Dokumentation

autoPlay : bool

Legt fest, ob der Player automatisch mit der Wiedergabe der Animation beginnt, nachdem die Animationsdatei geladen wurde.

Der Standardwert ist true.


direction : enumeration

Diese Eigenschaft gibt die Richtung des Renderings an.

KonstanteBeschreibung
LottieAnimation.ForwardVorwärtsrichtung (Voreinstellung)
LottieAnimation.ReverseUmgekehrte Richtung

endFrame : int [read-only]

Bildnummer des Endes der Animation. Der Wert ist verfügbar, nachdem die Animation geladen wurde und abspielbereit ist.


frameRate : int

Diese Eigenschaft enthält den Wert der Bildrate der Bodymovin-Animation.

frameRate Der Wert ändert sich, nachdem das Asset geladen wurde. Eine Änderung der Framerate hat vorher keine Auswirkungen, da der im Asset definierte Wert den Wert überschreibt. Um die Framerate zu ändern, können Sie schreiben:

LottieAnimation {
    source: "animation.json"
    onStatusChanged: {
        if (status === LottieAnimation.Ready)
            frameRate = 60;
    }

loops : int

Diese Eigenschaft enthält die Anzahl der Schleifen, die der Player wiederholt. Der Wert LottieAnimation.Infinite bedeutet, dass der Player die Animation kontinuierlich wiederholt.

Der Standardwert ist 1.


quality : enumeration

Legt die Rendering-Qualität des Bodymovin-Players fest. Wenn LowQuality ausgewählt ist, erfolgt das Rendering in ein Frame-Buffer-Objekt, während bei anderen Optionen das Rendering auf QImage erfolgt (das wiederum auf den Bildschirm gerendert wird).

KonstanteBeschreibung
LottieAnimation.LowQualityAntialiasing oder ein glatter Pixmap-Transformationsalgorithmus werden nicht verwendet
LottieAnimation.MediumQualityEs wird ein glatter Pixmap-Transformationsalgorithmus verwendet, aber kein Antialiasing (Voreinstellung)
LottieAnimation.HighQualityAntialiasing und ein glatter Pixmap-Transformationsalgorithmus werden beide verwendet

source : url

Die Quelle des Bodymovin-Assets, das LottieAnimation abspielt.

LottieAnimation kann jedes von Qt unterstützte URL-Schema verarbeiten. Die URL kann absolut oder relativ zur URL der Komponente sein.

Das Setzen der Quelleigenschaft startet das asynchrone Laden der Animation. Um den Fortschritt des Ladens zu überwachen, verbinden Sie sich mit dem status change Signal.


startFrame : int [read-only]

Frame-Nummer des Starts der Animation. Der Wert ist verfügbar, nachdem die Animation geladen wurde und abspielbereit ist.


status : enumeration

Diese Eigenschaft enthält den aktuellen Status des Elements LottieAnimation.

KonstanteBeschreibung
LottieAnimation.NullEin Anfangswert, der verwendet wird, wenn die Quelle nicht definiert ist (Standard)
LottieAnimation.LoadingDer Player lädt gerade eine Bodymovin-Datei
LottieAnimation.ReadyDer Ladevorgang wurde erfolgreich abgeschlossen und der Player ist bereit, die Animation abzuspielen
LottieAnimation.ErrorBeim Laden der Animation ist ein Fehler aufgetreten

Sie könnten zum Beispiel den Signalhandler onStatusChanged implementieren, um den Fortschritt des Ladens einer Animation wie folgt zu überwachen:

LottieAnimation {
    source: "animation.json"
    autoPlay: false
    onStatusChanged: {
        if (status === LottieAnimation.Ready)
            start();
    }

Signal-Dokumentation

finished()

Dieses Signal wird ausgegeben, wenn die Wiedergabe des Players beendet ist. Im Falle einer Schleife wird das Signal ausgegeben, wenn die letzte Schleife beendet ist.

Hinweis: Der entsprechende Handler ist onFinished.


Methode Dokumentation

double getDuration(bool inFrames)

Gibt die Dauer des aktuell abgespielten Assets zurück.

Wenn ein gegebenes inFrames true ist, ist der Rückgabewert die Dauer in Anzahl der Frames. Andernfalls wird die Dauer in Sekunden zurückgegeben.


void gotoAndPlay(int frame)

Spielt das Asset ab dem angegebenen frame ab.


bool gotoAndPlay(string frameMarker)

Spielt das Asset ab dem Frame ab, der eine Markierung mit dem angegebenen frameMarker hat. Gibt true zurück, wenn der frameMarker gefunden wurde, andernfalls false.


void gotoAndStop(int frame)

Bewegt den Abspielkopf zum angegebenen frame und hält an.


bool gotoAndStop(string frameMarker)

Bewegt den Abspielkopf zum angegebenen Marker und hält an. Gibt true zurück, wenn frameMarker gefunden wurde, andernfalls false.


void pause()

Hält die Wiedergabe an.


void play()

Startet oder setzt die Wiedergabe an der aktuellen Position fort.


void start()

Startet die Wiedergabe der Animation von Anfang an.


void stop()

Stoppt die Wiedergabe und kehrt zu startFrame zurück.


void togglePause()

Schaltet den Status des Players zwischen Abspielen und Anhalten um.


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