式を構築する

WFF は式言語を使用して、次の機能を有効にします。

  • Transform または Gyro を使用した外観の変換
  • Condition ステートメントによる条件付き動作
  • Template 要素での文字列の書式設定

式言語は、一般的な演算子と使用できるさまざまな関数を含むスクリプト言語です。

式では、角かっこで表されるデータソースを使用して、現在の日時、健康やフィットネスの指標、天気などの外部入力に反応できます。

式を使用する場合、Transform または TemplateCondition の使用方法の主な違いは、TransformTemplate では式の結果が(囲む要素の新しい位置など)である必要があるのに対し、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

式の設定値

関数とデータソースに加えて、構成値を使用できます。たとえば、UserConfigurationsshowBackgroundInAfternoon という名前の BooleanConfiguration が定義されている場合、これは式で使用できます。

[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1