WFF verwendet eine Ausdruckssprache, um Folgendes zu ermöglichen:
- Darstellung mit
Transform
oderGyro
transformieren - Bedingtes Verhalten über
Condition
-Anweisungen - Stringformatierung in
Template
-Elementen
Die Ausdruckssprache ist eine Scriptsprache, die die üblichen Operatoren und eine Reihe von Funktionen enthält, die verwendet werden können.
In Ausdrücken können Datenquellen verwendet werden, die in eckigen Klammern dargestellt werden. So können Sie auf externe Eingaben wie das aktuelle Datum und die Uhrzeit, Gesundheits- und Fitnessmesswerte oder sogar das Wetter reagieren.
Bei der Verwendung von Ausdrücken besteht der Hauptunterschied zwischen Transform
oder Template
und Condition
darin, dass bei Transform
und Template
der Ausdruck in einem Wert enden muss (z. B. die neue Position des umschließenden Elements), während bei Condition
der Ausdruck in einem booleschen Wert enden muss.
Für eine Condition
kann beispielsweise Folgendes verwendet werden:
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
Das Ergebnis ist ein boolescher Wert, der anhand der Datenquelle DAY_OF_WEEK
bestimmt, ob es sich um ein Wochenende handelt oder nicht.
Auch Funktionen werden unterstützt, z. B. ein Ausdruck zum Drehen eines Werts um bis zu 5 Grad in beide Richtungen, basierend auf der x-value
des Wear OS-Geräte-Beschleunigungsmessers:
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
Die Funktion clamp()
schränkt einen Wert auf zwei Grenzen ein.
Erneute Überprüfung des Ausdrucks
Die Häufigkeit, mit der Ausdrücke neu bewertet werden, hängt von den verwendeten Datenquellen ab. Beispielsweise wird der Ausdruck [DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] ==
7
nur dann neu ausgewertet, wenn ein neuer Tag beginnt. Ein Ausdruck, der die Datenquelle [SECOND]
verwendet, wird jedoch jede Sekunde neu ausgewertet.
Die Neubewertung kann je nach Änderung des Ausdrucksergebnisses zu einer Neuberechnung und einem Neu-Rendering der Szene führen. Daher ist es wichtig, immer Datenquellen zu verwenden, die so selten wie möglich neu bewertet werden. So können Sie beispielsweise prüfen, ob es Nachmittag ist:
// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200
// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1
Konfigurationswerte in Ausdrücken
Neben Funktionen und Datenquellen können auch Konfigurationswerte verwendet werden. Wenn beispielsweise in den UserConfigurations eine BooleanConfiguration
mit dem Namen showBackgroundInAfternoon
definiert wurde, kann diese in einem Ausdruck verwendet werden:
[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1