Animazione
Imposta le transizioni tramite animations per gli attributi View supportati. Dopo che la proprietà ha ottenuto il nuovo valore target, CapDrive disegna gli stati intermedi in base alla durata e alla curva dichiarate.
Come attivare l'animazione
animations è un array di dichiarazioni di animazione su View. property specifica l'attributo da controllare, ad esempio opacity o sweepAngle. Quando il valore target di View cambia, l'animazione corrispondente inizia la transizione; la semplice aggiunta di animazioni agli attributi fissi non produrrà automaticamente modifiche.
Nella relativa pagina viene fornito un elenco delle proprietà supportate da ciascun componente. Quando è necessario aggiungere, eliminare o riorganizzare dinamicamente il sotto-View, mantieni un key stabile in modo che gli aggiornamenti corrispondano ancora allo stesso oggetto di disegno.
Tempo, ripetizione e angolazione
L'unità di duration, delay è secondi, la durata predefinita è 0,25 secondi, il ritardo è zero e la curva predefinita è easeInOut. from/to può chiarire gli obiettivi di inizio e fine, repeat e autoreverse controllano la ripetizione e il viaggio di andata e ritorno. La stessa proprietà dovrebbe essere controllata solo da una dichiarazione.
Gli attributi del periodo possono utilizzare wrap per selezionare i percorsi di transizione tra i periodi. Ad esempio startAngle utilizzerebbe wrap: 360 da 350° a 10°. sweepAngle rappresenta l'angolo di spostamento effettivo, mantenendo le direzioni positiva e negativa e non supporta wrap.
Esempio: Arco di velocità
Dopo aver selezionato una velocità, l'esempio converte un intervallo di velocità da 0–200 a 0–360°. Quando la velocità cambia da 50 a 100, l'angolo target cambia da 90° a 180° e l'arco impiega 0,25 secondi per completare la transizione. Per il campo di misura viene utilizzata l'unità di velocità corrente; quando non è in corso alcuna misurazione viene visualizzata una linea orizzontale.
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' },
]}
/>
);
}
Cambiamenti di contenuto ed effetti dinamici
contentAnimation viene utilizzato per aggiornare contenuti come testo, immagini o dati grafici. Il tipo di supporto è determinato dal componente specifico, come le transizioni di testo digitale e l'interpolazione dei dati grafici.
L'interpolazione della forma richiede strutture corrispondenti prima e dopo, ad esempio, il numero di punti e le impostazioni di chiusura di Polyline sono gli stessi e la sequenza di comandi di Path è la stessa. Aggiorna direttamente quando la struttura è incompatibile. L'animazione viene eseguita dal lato di disegno e non richiede temporizzazione del loop in main(); l'animazione non aumenta la frequenza di aggiornamento effettiva del sensore o del OBD.