2017-06-23 1571 views
0

早在1996年,我为客户创建了纺纱标识,因为我可以,现在在2017年,我回来了,感谢AnimatedAnimated.loop image

<hr />下方的代码有效,但重启时会出现小小的凹凸。

任何想法如何使用Animated.loop?它不会:“”每次到达结尾时,都会重置并从开始»重新开始。

Animated.loop(
    Animated.timing(this.state.spinValue, { 
    toValue: 1, 
    duration: this.props.duration, 
    easing: Easing.linear, 
    useNativeDriver: true 
    }) 
).start(); 

static defaultProps = { 
    duration: 60/(33 + 1/3) * 1000 
} 

constructor (props) { 
    super(props); 
    this.state = { 
    spinValue: new Animated.Value(0) 
    }; 
} 

componentDidMount() { 
    this._animate(); 
} 

_animate() { 
    Animated.timing(this.state.spinValue, { 
    toValue: 1, 
    duration: this.props.duration, 
    easing: Easing.linear, 
    useNativeDriver: true 
    }).start(event => { 
    if (event.finished) { 
     this.setState({ 
     spinValue: new Animated.Value(0) 
     }, this._animate.bind(this)); 
    } 
    }); 
} 

render() { 
    const spin = this.state.spinValue.interpolate({ 
    inputRange: [0, 1], 
    outputRange: ['0deg', '360deg'] 
    }); 
    return (
    <View style={ Loading.style.container }> 
     <Animated.Image 
     source={ logo } 
     style={{ transform: [{ rotate: spin }] }} 
     /> 
    </View> 
); 
} 

回答

0

易于使用的反应,本机LoopAnimation.js' https://github.com/Infinity0106/react-native-LoopAnimation

import LoopAnimation from 'react-native-LoopAnimation.js' 
... 
render() { 
    //you can also use, like source={imgSource} 
    const imgSource= 
    {uri:'http://www.menucool.com/slider/jsImgSlider/images/image-slider-2.jpg',width:700,height:306}; 

    return (
    <View style={{flex:1}}> 
     {/*this is the background animation */} 
     <LoopAnimation source={require('./img/back.jpg')} duration={10000} /> 
     <View style={{ 
      flex: 1, 
      flexDirection: 'column', 
      justifyContent: 'center', 
      alignItems: 'center', 
     }}> 
     {/*Content goes here*/} 
     <View style={{width: 200, height: 400, backgroundColor: 'powderblue'}} /> 
     </View> 
    </View> 
    ); 
    } 
+1

看来,库使用'Animated.sequence'。我想坚持使用纯粹的React Native。 – webjay