首页 > 解决方案 > 在制作动画时对值进行 React Native 访问

问题描述

我觉得这很简单,但我已经做了几个小时了。我是新来的反应,目前正在制作一个简单的动画,它可以滚动一些项目。但是,我希望它在动画的值达到某个阈值时播放声音。

代码

const end = -4352;
Animated.timing(this.state.left, {
  toValue: end,
  easing: Easing.bezier(0.3, 1, 0.65, 1),
  duration: 6500,
  useNativeDriver: false,
}).start(() => console.log("finished scrolling"));

我怎样才能使它在动画值达到 X 时达到 Y?

标签: javascriptreact-native

解决方案


您可以在要执行某事的毫秒数(毫秒)之后定义一个常量,可以这样说

const SOUND_START_AT = 3000 // after 3 seconds
const end = -4352;

Animated.timing(this.state.left, {
  toValue: end,
  easing: Easing.bezier(0.3, 1, 0.65, 1),
  duration: 6500,
  useNativeDriver: false,
}).start(() => setTimeout(() => {

  // this block will be executed after SOUND_START_AT seconds

}, SOUND_START_AT));

推荐阅读