WFF は式言語を使用して、次の機能を有効にします。
Transform
またはGyro
を使用した外観の変換Condition
ステートメントによる条件付き動作Template
要素での文字列の書式設定
式言語は、一般的な演算子と使用できるさまざまな関数を含むスクリプト言語です。
式では、角かっこで表されるデータソースを使用して、現在の日時、健康やフィットネスの指標、天気などの外部入力に反応できます。
式を使用する場合、Transform
または Template
と Condition
の使用方法の主な違いは、Transform
と Template
では式の結果が値(囲む要素の新しい位置など)である必要があるのに対し、Condition
では式の結果がブール値である必要がある点です。
たとえば、Condition
は次を使用できます。
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
これはブール値として評価され、DAY_OF_WEEK
データソースを使用して、週末かどうかを判断します。
関数もサポートされています。たとえば、Wear OS デバイスの加速度計の x-value
に基づいて、いずれかの方向に値を最大 5 度回転する式などです。
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
clamp()
関数は、2 つの境界内に値を制限します。
式の再評価
式が再評価される頻度は、式で使用されるデータソースによって異なります。たとえば、[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] ==
7
式] は、新しい日が始まったときにのみ再評価されます。ただし、[SECOND]
データソースを使用する式は、1 秒ごとに再評価されます。
再評価により、式の結果の変化に基づいてシーンの再計算と再レンダリングが行われる場合があります。そのため、できるだけ頻繁に再評価されないデータソースを常に使用することが重要です。たとえば、午後かどうかを判断するには:
// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200
// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1
式の設定値
関数とデータソースに加えて、構成値を使用できます。たとえば、UserConfigurations で showBackgroundInAfternoon
という名前の BooleanConfiguration
が定義されている場合、これは式で使用できます。
[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1