تغيير محتوى العنصر ديناميكيًا

في حين أنّ 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>
        <!-- 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>

في ما يلي بعض الملاحظات حول الشروط:

  1. يتم استخدام أول عنصر Compare تكون فيه قيمة expression هي true، ويتم تجاهل العناصر الأخرى.
  2. بسبب تنسيق XML، قد يكون من الأسهل غالبًا تضمين تعريف التعبير في عنصر CDATA كما هو موضّح هنا، لأنّ ذلك يجنّبك الحاجة إلى إلغاء تضمين XML باستخدام عناصر الكيان، مثل &gt; و&amp;.
  3. يمكن تضمين بنى Condition.