Реагировать на родную сковороду по кругу - PullRequest
0 голосов
/ 24 марта 2020

Я делаю игрока с круглым индикатором выполнения. Этот проигрыватель имеет 2 функции:

  1. Ручка перемещается автоматически каждую секунду (во время воспроизведения песни)
  2. Круглый индикатор выполнения имеет ручку, которую пользователь может перемещать (для очистки песни)

Для первого задания я использовал таймер, который обновляет Animated.Value с 0 до 1 (в зависимости от продолжительности песни) и интерполирует значения в градусы. Работает нормально.

Но как мне выполнить второе задание? Я пытался использовать PanResponder с Animated.Event внутри onPanResponserMove, но я просто не мог заставить его работать.

 class MyComponent extends React.Component {
   constructor(props) {
   super(props);
   this.pan = new Animated.ValueXY()
   this.panResponder = PanResponder.create({
   onStartShouldSetPanResponder: () => true,
   onPanResponderMove: (e, gestureState) => return Animated.event([
null, {
     dx: this.pan.x,
     dy: this.pan.y,
   }])(e, gestureState),
   onPanResponderRelease: () => {
   },
  });
 }

 render() {
   return (
     <Animated.Image
       {...this.panResponder.panHandlers}
       style={[{translateY: this.pan.y}, {translateX: this.pan.x}, {rotate: this.pan.x.interpolate({
                inputRange: [0, 1],
                outputRange: ['0deg', '360deg'],
            })]}>
       {this.props.children}
     </Animated.Image>
   );
 }
}

Пожалуйста, сообщите. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...