Dynamiczna zmiana zawartości elementu

Funkcja Transform pozwala zmienić wygląd elementów lub grup elementów, ale czasami może się zdarzyć, że chcesz przełączyć się między listą zachowań na podstawie określonego warunku. Jest to analogiczne stwierdzenie do switch lub if…else w innych językach.

Możesz na przykład wyświetlać inne tło w czasie wczesnego poranka, rana, lunchu, popołudnia, wieczoru i nocy.

Instrukcje Condition w formacie tarczy zegarka umożliwiają uwzględnianie różnych części sceny tarczy zegarka w zależności od oceny wyrażeń, na przykład:

<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>

Kilka informacji o warunkach:

  1. Używany jest pierwszy element Compare, w którym wartość atrybutu expression to true, a pozostałe są ignorowane.
  2. Ze względu na format XML często najłatwiej jest otoczyć definicję wyrażenia elementem CDATA, jak pokazano tutaj, ponieważ pozwala to uniknąć ucieczki XML za pomocą elementów encji, takich jak &gt;&amp;.
  3. Struktury Condition mogą być zagnieżdżone.