建構運算式

WFF 使用運算式語言來啟用:

  • 使用 TransformGyro 轉換外觀
  • 透過 Condition 陳述式設定條件式行為
  • Template 元素中的字串格式設定

運算式語言是一種指令碼語言,其中包含一般運算子和可用的一系列函式。

運算式可使用資料來源 (以方括號表示),讓您回應外部輸入內容,例如目前的日期和時間、健康和健身指標,甚至天氣。

使用運算式時,TransformTemplateCondition 的使用方式主要差異在於,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() 函式會將值限制在兩個邊界內。

重新評估運算式

重新評估運算式的頻率取決於運算式使用的資料來源。舉例來說,[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7 運算式] 只會在新的一天開始時重新評估。不過,使用 [SECOND] 資料來源的運算式會每秒重新評估一次。

根據運算式結果的變化,重新評估可能會導致場景重新計算和重新算繪。因此,請務必使用盡可能不常重新評估資料來源的資料來源。例如,判斷是否為下午:

// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200

// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1

運算式中的設定值

除了函式和資料來源之外,您也可以使用設定值。舉例來說,如果在 UserConfigurations 中已定義名為 showBackgroundInAfternoonBooleanConfiguration,則可在運算式中使用這個值:

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