WFF menggunakan bahasa ekspresi untuk mengaktifkan:
- Mengubah tampilan menggunakan
TransformatauGyro - Perilaku bersyarat melalui pernyataan
Condition - Pemformatan string dalam elemen
Template
Bahasa ekspresi adalah bahasa skrip yang berisi operator umum dan berbagai fungsi yang dapat digunakan.
Ekspresi dapat menggunakan sumber data—yang ditampilkan menggunakan tanda kurung siku—untuk memungkinkan Anda bereaksi terhadap input eksternal seperti tanggal dan waktu saat ini, metrik kesehatan dan kebugaran, atau bahkan cuaca.
Saat menggunakan ekspresi, perbedaan utama antara penggunaan Transform, Template, dan Condition adalah bahwa Transform dan Template memerlukan ekspresi
untuk menghasilkan nilai (misalnya, posisi baru elemen penutup)
sementara Condition memerlukan ekspresi untuk menghasilkan boolean.
Jika digunakan dalam elemen Condition, tentukan ekspresi sebagai elemen
teks. Bungkus ekspresi dalam elemen CDATA untuk menghindari kebutuhan
menggunakan referensi entitas, seperti " dan &.
<![CDATA[[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7]]>
Ini dievaluasi ke boolean dan menentukan apakah itu akhir pekan atau tidak,
menggunakan sumber data DAY_OF_WEEK.
Fungsi juga didukung—misalnya, ekspresi untuk memutar
nilai hingga 5 derajat ke salah satu arah—berdasarkan x-value akselerometer perangkat
Wear OS:
(5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
Fungsi clamp() membatasi nilai dalam dua batas.
Evaluasi ulang ekspresi
Frekuensi evaluasi ulang ekspresi bergantung pada sumber data yang digunakan di dalamnya. Misalnya, ekspresi
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
hanya dievaluasi ulang saat hari baru dimulai. Namun, ekspresi yang menggunakan sumber data [SECOND] dievaluasi ulang setiap detik.
Evaluasi ulang dapat menyebabkan penghitungan ulang dan rendering ulang adegan, berdasarkan perubahan hasil ekspresi. Oleh karena itu, penting untuk selalu menggunakan sumber data yang dievaluasi ulang sesering mungkin. Misalnya, untuk menentukan apakah saat ini siang:
<!-- BAD: Re-evaluates every second --> [SECONDS_IN_DAY] > 43200
<!-- Good: Minimizes re-evaluation (1 = PM, 0 = AM) --> [AMPM_STATE] == 1
Nilai konfigurasi dalam ekspresi
Selain fungsi dan sumber data, nilai konfigurasi dapat digunakan. Misalnya, jika di UserConfigurations, BooleanConfiguration bernama
showBackgroundInAfternoon telah ditentukan, BooleanConfiguration ini dapat digunakan dalam ekspresi:
<![CDATA[[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1]]>