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()
함수는 값을 두 경계 내로 제한합니다.
표현식 재평가
표현식이 재평가되는 빈도는 표현식에 사용된 데이터 소스에 따라 다릅니다. 예를 들어 [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