Animación

Establezca transiciones a través de animations para los atributos View admitidos. Después de que la propiedad obtiene su nuevo valor objetivo, CapDrive dibuja los estados intermedios de acuerdo con la duración y la curva declaradas.

Cómo activar la animación

animations es una matriz de declaraciones de animación en View. property especifica el atributo a controlar, como opacity o sweepAngle. Cuando el valor objetivo de View cambia, la animación correspondiente comienza a realizar la transición; simplemente agregar animación a atributos fijos no producirá cambios automáticamente.

En su página se proporciona una lista de propiedades admitidas por cada componente. Cuando necesite agregar, eliminar o reorganizar dinámicamente sub-View, mantenga un key estable para ellos para que las actualizaciones sigan correspondiendo al mismo objeto de dibujo.

Tiempo, repetición y ángulo.

La unidad de duration, delay es segundos, la duración predeterminada es 0,25 segundos, el retraso es cero y la curva predeterminada es easeInOut. from/to puede aclarar los objetivos iniciales y finales, repeat y autoreverse controlan la repetición y el ida y vuelta. Una misma propiedad sólo debe controlarse mediante una declaración.

Los atributos de período pueden usar wrap para seleccionar rutas de transición entre períodos. Por ejemplo, startAngle usaría wrap: 360 de 350° a 10°. sweepAngle representa el ángulo de barrido real, conserva las direcciones positiva y negativa y no admite wrap.

Ejemplo: arco de velocidad

Después de seleccionar una velocidad, el ejemplo convierte un rango de velocidad de 0–200 a 0–360°. Cuando la velocidad cambia de 50 a 100, el ángulo objetivo cambia de 90° a 180° y el arco tarda 0,25 segundos en completar la transición. Para el rango de medición se utiliza la unidad de velocidad actual; Se muestra una línea horizontal cuando no hay ninguna medición.

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' },
      ]}
    />
  );
}

Cambios de contenido y efectos dinámicos.

contentAnimation se utiliza para actualizar contenido como texto, imágenes o datos de gráficos. El tipo de soporte está determinado por el componente específico, como transiciones de texto digital e interpolación de datos gráficos.

La interpolación de formas requiere estructuras correspondientes antes y después, por ejemplo, el número de puntos y la configuración de cierre de Polyline son los mismos y la secuencia de comandos de Path es la misma. Actualizar directamente cuando la estructura sea incompatible. La animación la realiza el lado dibujado y no requiere sincronización de bucle en main(); La animación no aumenta la frecuencia de actualización real del sensor o OBD.