Mudar dinamicamente o conteúdo do elemento

Embora o Transform permita mudar a aparência de elementos ou grupos de elementos, pode haver ocasiões em que você queira alternar entre uma lista de comportamentos com base em alguma condição. Isso é análogo a uma instrução switch ou if…else em outras linguagens.

Por exemplo, você pode mostrar um plano de fundo diferente para cada período do dia: manhã, almoço, tarde, noite e madrugada.

As instruções Condition no Formato do Mostrador do Relógio permitem incluir diferentes partes da cena do mostrador, 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>
        <!-- Further expressions -->
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
    </Compare>
    <!-- Further Compare elements -->
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

Algumas observações sobre as condições:

  1. O primeiro elemento Compare em que expression é true é usado, e os outros são ignorados.
  2. Devido ao formato XML, muitas vezes é mais fácil incluir a definição de expressão em um elemento CDATA, como mostrado aqui. Isso evita a necessidade de escape XML usando elementos de entidade, como &gt; e &amp;.
  3. Condition estruturas podem ser aninhadas.