WFF utilise un langage d'expression pour permettre:
- Transformer l'apparence à l'aide de
Transform
ouGyro
- Comportement conditionnel via des instructions
Condition
- Mise en forme de chaînes dans les éléments
Template
Le langage d'expression est un langage de script qui contient vos opérateurs standards et une gamme de fonctions pouvant être utilisées.
Les expressions peuvent utiliser des sources de données (représentées par des crochets) pour vous permettre de réagir aux entrées externes telles que la date et l'heure actuelles, les indicateurs de santé et de forme physique, ou même la météo.
Lorsque vous utilisez des expressions, la principale différence entre l'utilisation de Transform
ou Template
et celle de Condition
est que Transform
et Template
exigent que l'expression aboutisse à une valeur (par exemple, la nouvelle position de l'élément englobant), tandis que Condition
exige que l'expression aboutisse à une valeur booléenne.
Par exemple, un Condition
peut utiliser:
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
Cette valeur est évaluée à un booléen et détermine s'il s'agit d'un week-end ou non, à l'aide de la source de données DAY_OF_WEEK
.
Les fonctions sont également acceptées (par exemple, une expression permettant de faire pivoter une valeur de jusqu'à 5 degrés dans les deux sens) en fonction de la x-value
de l'accéléromètre de l'appareil Wear OS:
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
La fonction clamp()
limite une valeur entre deux limites.
Réévaluation de l'expression
La fréquence à laquelle les expressions sont réévaluées dépend des sources de données utilisées. Par exemple, l'expression [DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] ==
7
n'est réévaluée que lorsqu'un nouveau jour commence. Toutefois, une expression qui utilise la source de données [SECOND]
est réévaluée toutes les secondes.
La réévaluation peut entraîner un nouveau calcul et un nouveau rendu de la scène, en fonction du changement du résultat de l'expression. Il est donc important d'utiliser toujours des sources de données qui effectuent des réévaluations aussi rarement que possible. Par exemple, pour déterminer s'il est l'après-midi:
// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200
// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1
Valeurs de configuration dans les expressions
En plus des fonctions et des sources de données, vous pouvez utiliser des valeurs de configuration. Par exemple, si un BooleanConfiguration
nommé showBackgroundInAfternoon
a été défini dans UserConfigurations, il peut être utilisé dans une expression:
[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1