ภาพเคลื่อนไหว

ตั้งค่าการเปลี่ยนผ่าน animations สำหรับแอตทริบิวต์ View ที่รองรับ หลังจากที่คุณสมบัติได้รับค่าเป้าหมายใหม่ CapDrive จะดึงสถานะระดับกลางตามระยะเวลาและเส้นโค้งที่ประกาศ

วิธีเรียกภาพเคลื่อนไหว

animations คืออาร์เรย์ของการประกาศแอนิเมชันใน View property ระบุแอ็ตทริบิวต์ที่จะควบคุม เช่น opacity หรือ sweepAngle เมื่อค่าเป้าหมายของ View เปลี่ยนแปลง ภาพเคลื่อนไหวที่เกี่ยวข้องจะเริ่มเปลี่ยน การเพิ่มแอนิเมชั่นให้กับแอตทริบิวต์คงที่จะไม่ทำให้เกิดการเปลี่ยนแปลงโดยอัตโนมัติ

รายการคุณสมบัติที่แต่ละส่วนประกอบรองรับมีอยู่ในหน้าของมัน เมื่อคุณต้องการเพิ่ม ลบ หรือจัดเรียง sub-View แบบไดนามิก ให้คง key ที่เสถียรไว้เพื่อให้การอัปเดตยังคงสอดคล้องกับออบเจ็กต์รูปวาดเดียวกัน

เวลา การทำซ้ำ และมุม

หน่วยของ duration, delay คือ วินาที ระยะเวลาเริ่มต้นคือ 0.25 วินาที การหน่วงเวลาเป็นศูนย์ และเส้นโค้งเริ่มต้นคือ easeInOut from/to สามารถชี้แจงเป้าหมายเริ่มต้นและสิ้นสุดได้ repeat และ autoreverse ควบคุมการทำซ้ำและการไปกลับ คุณสมบัติเดียวกันควรได้รับการควบคุมโดยการประกาศเดียวเท่านั้น

คุณลักษณะรอบระยะเวลาสามารถใช้ wrap เพื่อเลือกเส้นทางการเปลี่ยนแปลงข้ามรอบระยะเวลา ตัวอย่างเช่น startAngle จะใช้ wrap: 360 จาก 350° ถึง 10° sweepAngle แสดงถึงมุมกวาดตามจริง โดยคงทิศทางบวกและลบ และไม่รองรับ wrap

ตัวอย่าง: ส่วนโค้งความเร็ว

หลังจากเลือกความเร็วแล้ว ตัวอย่างจะแปลงช่วงความเร็ว 0–200 ถึง 0–360° เมื่อความเร็วเปลี่ยนจาก 50 เป็น 100 มุมเป้าหมายจะเปลี่ยนจาก 90° เป็น 180° และส่วนโค้งจะใช้เวลา 0.25 วินาทีในการเปลี่ยนแปลงให้เสร็จสิ้น หน่วยความเร็วปัจจุบันใช้สำหรับช่วงการวัด เส้นแนวนอนจะปรากฏขึ้นเมื่อไม่มีการวัด

function main() {
  const speed = $data.current.speed?.value;
  if (speed == null) {
    return (
      <Text fontSize={32} color={$env.foreground}>
        —
      </Text>
    );
  }
  return (
    <Circle
      width={120}
      height={120}
      background="clear"
      stroke={$env.accent}
      lineWidth={8}
      startAngle={-90}
      sweepAngle={Math.max(0, Math.min(1, speed / 200)) * 360}
      animations={[
        { property: 'sweepAngle', duration: 0.25, curve: 'easeOut' },
      ]}
    />
  );
}

การเปลี่ยนแปลงเนื้อหาและเอฟเฟกต์ไดนามิก

contentAnimation ใช้เพื่ออัปเดตเนื้อหา เช่น ข้อความ รูปภาพ หรือข้อมูลแผนภูมิ ประเภทการสนับสนุนจะกำหนดโดยองค์ประกอบเฉพาะ เช่น การเปลี่ยนข้อความดิจิทัลและการแก้ไขข้อมูลกราฟิก

การประมาณค่ารูปร่างจำเป็นต้องมีโครงสร้างที่สอดคล้องกันทั้งก่อนและหลัง ตัวอย่างเช่น จำนวนจุดและการตั้งค่าการปิดของ Polyline เท่ากัน และลำดับคำสั่งของ Path เหมือนกัน อัปเดตโดยตรงเมื่อโครงสร้างเข้ากันไม่ได้ แอนิเมชั่นดำเนินการโดยฝั่งที่วาดและไม่จำเป็นต้องมีไทม์มิ่งแบบวนซ้ำใน main(); ภาพเคลื่อนไหวไม่เพิ่มความถี่ในการอัปเดตจริงของเซ็นเซอร์หรือ OBD