Öğe içeriğini dinamik olarak değiştirme

Transform, öğelerin veya öğe gruplarının görünümünü değiştirmenize olanak tanır. Ancak bazı koşullara bağlı olarak davranışlar listesi arasında geçiş yapmak isteyebilirsiniz. Bu, diğer dillerdeki switch veya if…else beyanına benzer.

Örneğin, sabahın erken saatleri, sabah, öğle yemeği, öğleden sonra, akşam ve gece için farklı bir arka plan göstermek isteyebilirsiniz.

Kadran biçimindeki Condition ifadeleri, ifadelerin değerlendirilmesine bağlı olarak kadran sahnenizin farklı bölümlerini eklemenize olanak tanır. Örneğin:

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

Koşullarla ilgili dikkat edilmesi gereken birkaç nokta:

  1. expression değerinin true olduğu ilk Compare öğesi kullanılır, diğerleri yoksayılır.
  2. XML biçimi nedeniyle, ifade tanımını burada gösterildiği gibi bir CDATA öğesine sarmalamak genellikle en kolay seçenektir. Bu sayede &gt; ve &amp; gibi varlık öğeleri kullanılarak XML kaçış karakteri ekleme ihtiyacı ortadan kalkar.
  3. Condition yapıları iç içe yerleştirilebilir.