שינוי דינמי של תוכן רכיב

האפשרות Transform מאפשרת לשנות את המראה של רכיבים או קבוצות של רכיבים, אבל יכול להיות שתצטרכו לעבור בין רשימת התנהגויות על סמך תנאי כלשהו. זה דומה להצהרה switch או להצהרה if…else בשפות אחרות.

לדוגמה, כדאי להציג רקע שונה לשעות הבוקר המוקדמות, לשעות הבוקר, לשעות הצהריים, לשעות אחר הצהריים, לשעות הערב ולשעות הלילה.

הצהרות Condition בפורמט של תצוגת שעון מאפשרות לכם לכלול חלקים שונים של הסצנה בתצוגת השעון בהתאם להערכה של הביטויים, לדוגמה:

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

כמה דברים שכדאי לזכור לגבי תנאים:

  1. המערכת משתמשת ברכיב Compare הראשון שבו הערך של expression הוא true, והיא מתעלמת מרכיבים אחרים.
  2. בגלל הפורמט של ה-XML, לרוב הכי קל לעטוף את הגדרת הביטוי ברכיב CDATA כפי שמוצג כאן, כי כך אין צורך לבצע בריחה מ-XML באמצעות רכיבי ישות כמו &gt; ו-&amp;.
  3. אפשר להטמיע מבנים של Condition.