Mudar dinamicamente o conteúdo do elemento

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:

  1. O primeiro elemento Compare em que o expression é true é usado, e os outros são ignorados.
  2. 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 &gt; e &amp;.
  3. As estruturas Condition podem ser aninhadas.