تستخدم WFF لغة تعبيرية تتيح ما يلي:
- تغيير المظهر باستخدام
TransformأوGyro - السلوك الشرطي من خلال عبارات
Condition - تنسيق السلسلة في عناصر
Template
لغة التعبير هي لغة برمجة نصية تحتوي على عوامل التشغيل النموذجية ومجموعة من الدوال التي يمكن استخدامها.
يمكن أن تستخدم التعبيرات مصادر البيانات، والتي يتم تمثيلها باستخدام أقواس مربّعة، للتفاعل مع المدخلات الخارجية، مثل التاريخ والوقت الحاليين أو مقاييس الصحة واللياقة البدنية أو حتى الطقس.
عند استخدام التعبيرات، يكمن الاختلاف الأساسي بين استخدامات Transform وTemplate وCondition في أنّ Transform وTemplate تتطلّبان أن يؤدي التعبير إلى قيمة (على سبيل المثال، الموضع الجديد للعنصر المضمّن)، بينما تتطلّب Condition أن يؤدي التعبير إلى قيمة منطقية.
عند استخدامها في عنصر Condition، حدِّد التعبير كعنصر نصي. ضَع التعبير في العنصر CDATA لتجنُّب الحاجة إلى استخدام مراجع الكيانات، مثل " و&.
<![CDATA[[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7]]>
تُقيّم هذه السمة إلى قيمة منطقية وتحدّد ما إذا كان اليوم هو عطلة نهاية الأسبوع أم لا،
باستخدام مصدر البيانات DAY_OF_WEEK.
تتوفّر أيضًا الدوال، مثل تعبير لتدوير قيمة بمقدار 5 درجات في أي من الاتجاهين، استنادًا إلى x-value مقياس التسارع في جهاز Wear OS:
(5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5.0/90.0)*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: Minimizes re-evaluation (1 = PM, 0 = AM) --> [AMPM_STATE] == 1
قيم الإعداد في التعبيرات
بالإضافة إلى الدوال ومصادر البيانات، يمكن استخدام قيم الإعداد. على سبيل المثال، إذا تم تحديد BooleanConfiguration باسم showBackgroundInAfternoon في UserConfigurations، يمكن استخدام ذلك في تعبير:
<![CDATA[[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1]]>