Embora Transform
permita mudar a aparência de elementos ou grupos de
elementos, pode haver ocasiões em que você quer alternar entre uma lista de
comportamentos com base em alguma condição. Isso é análogo a uma instrução switch
ou if…else
em outros idiomas.
Por exemplo, você pode mostrar um segundo plano diferente para a manhã, de manhã, almoço, tarde, noite e madrugada.
As instruções Condition
no formato de mostrador do relógio permitem incluir diferentes partes
da cena do mostrador do relógio, dependendo da avaliação das expressões. Por
exemplo:
<Condition>
<Expressions>
<Expression name="is_early_morning">
<![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]]
</Expression>
<Expression name="is_morning">
<![CDATA[[HOUR_0_23] < 12]]
</Expression>
...
</Expressions>
<Compare expression="is_early_morning">
<!-- Early morning content here -->
<Group ... />
</Compare>
<Compare expression="is_morning">
<!-- Morning content here -->
<Group ... />
</Compare>
...
<!-- The "else" case -->
<Default>
<!-- content -->
</Default>
</Condition>
Algumas observações sobre as condições:
- O primeiro elemento
Compare
em que oexpression
étrue
é usado, e os outros são ignorados. - Devido ao formato XML, muitas vezes pode ser mais fácil agrupar a definição
da expressão em um elemento
CDATA
, conforme mostrado aqui, porque isso evita a necessidade de codificação XML usando elementos de entidade, como>
e&
. - As estruturas
Condition
podem ser aninhadas.