Я создаю анимацию пульсирующей волны в React Native с тремя перекрывающимися кругами, которые должны сохранять одинаковое расстояние. Изначально волны прекрасно анимируются с ровными интервалами, но после некоторого времени работы (обычно 10 секунд) они постепенно теряют синхронизацию. Минимальный воспроизводимый код (ссылка на выставку:https://snack.expo.dev/@real8900/c6cb2e)
Ожидаемое поведение: Три волны должны сохранять одинаковый интервал в течение неопределенного времени (с интервалом 300 мс). Фактическое поведение: После некоторого времени работы волны становятся заметно рассинхронизированными, с неравномерным интервалом между ними. Что я пробовал:
Использование Animated.loop и рекурсия вручную
Использование Easing.linear для обеспечения согласованности времени
Среда:
React Native: последняя версия Expo React Native
Платформа: iOS
Снимки экрана:
введите здесь описание изображения
введите здесь описание изображения
Почему происходит этот сдвиг синхронизации и как я могу обеспечить идеальную синхронизацию анимации в течение длительного периода времени?
Я создаю анимацию пульсирующей волны в React Native с тремя перекрывающимися кругами, которые должны сохранять одинаковое расстояние. Изначально волны прекрасно анимируются с ровными интервалами, но после некоторого времени работы (обычно 10 секунд) они постепенно теряют синхронизацию. [b]Минимальный воспроизводимый код ⬇️ (ссылка на выставку:[/b] https://snack.expo.dev/@real8900/c6cb2e) [code]import React, { useEffect, useRef } from 'react'; import { View, StyleSheet, Animated, Easing } from 'react-native';
export default App; [/code] [b]Ожидаемое поведение:[/b] Три волны должны сохранять одинаковый интервал в течение неопределенного времени (с интервалом 300 мс). [b]Фактическое поведение:[/b] После некоторого времени работы волны становятся заметно рассинхронизированными, с неравномерным интервалом между ними. [b]Что я пробовал:[/b] [list] [*]Использование Animated.loop и рекурсия вручную
[*]Использование Easing.linear для обеспечения согласованности времени
[/list] [b]Среда:[/b] [list] [*]React Native: последняя версия Expo React Native
[*]Платформа: iOS
[/list] [b]Снимки экрана:[/b] введите здесь описание изображения введите здесь описание изображения Почему происходит этот сдвиг синхронизации и как я могу обеспечить идеальную синхронизацию анимации в течение длительного периода времени?