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 Compareem 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 Conditionpodem ser aninhadas.
