تغییر پویا محتوای عنصر

اگرچه 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 همانطور که در اینجا نشان داده شده است، قرار دهید، زیرا این کار از نیاز به escape کردن XML با استفاده از عناصر موجودیت مانند &gt; و &amp; جلوگیری می‌کند.
  3. ساختارهای Condition می‌توانند تو در تو باشند.