تغيير مظهر العنصر بشكل ديناميكي

قد تحتاج إلى تغيير مظهر أجزاء من خلفية شاشة الساعة، على سبيل المثال، تغيير الموضع أو الحجم أو مستوى العرض، غالبًا استجابةً لمصادر بيانات الإدخال، مثل وقت اليوم أو مقياس التسارع.

في تنسيق خلفية شاشة الساعة، يتم تحقيق ذلك من خلال استخدام العنصر Transform. لا يمكن تحويل بعض العناصر، ولكن تشمل العناصر الرئيسية القابلة للتحويل: عناصر Group وPart* والأشكال الأساسية للرسم، مثل الأشكال والأنماط.

يتم وضع علامة على سمات كل عنصر قابلة للتحويل في مستندات المراجع.

يتم تحديد عملية التحويل نفسها في سمة value، في لغة تعبيرات تنسيق خلفية شاشة الساعة، والتي يمكن أن تتضمّن مصادر بيانات. تحدّد target السمة التي سيتم تغييرها في العنصر الرئيسي.

على سبيل المثال، لتغيير زاوية Arc لتعكس مستوى تقدّم الخطوة:

<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
  <Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
  <...>
</Arc>

عندما تتغيّر قيمة STEP_PERCENT، تتم إعادة احتساب endAngle وArc إعادة رسمه.

عندما يغيّر عنصر "التحويل" قيمة مستهدَفة، قد يكون من المفيد أن يتم تحرّك هذا التغيير على مدار فترة زمنية، بدلاً من تغيُّر فوري في القيمة قد يكون مزعجًا. استخدِم العنصر Animation لتحقيق ما يلي:

<PartDraw x="100" y="150" width="250" height="120" >
  <Ellipse x="0" y="0" width="50" height="50">
    <Fill color="#ff0000" />
    <!-- Red ball with no animated transition -->
    <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200"/>
  </Ellipse>
  <Ellipse x="0" y="100" width="50" height="50">
    <Fill color="#00ff00" />
    <!-- Green ball eases between each position -->
    <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200">
      <Animation duration="1" interpolation="EASE_IN_OUT" />
    </Transform>
  </Ellipse>
</PartDraw>

عمليات التحويل باستخدام مقياس التسارع

على الرغم من أنّه من الممكن استخدام العنصر Transform مع مصادر بيانات الجيرسكوب مثل ACCELEROMETER_ANGLE_X لتغيير موضع عنصر أو مقياسه، يقدّم تنسيق خلفية شاشة الساعة عنصرًا منفصلاً لهذه العناصر: Gyro.

يتيح لك ذلك تبسيط الصورة العامة، وفصل التحويل المستنِد إلى الحركة عن التحويلات الأخرى، مثل التحويل المستنِد إلى الوقت، والذي قد يتم تطبيقه على العنصر نفسه.