React-native Einführung neue Animated
API, möchte ich eine Schleife Animation wie eine Blase zu vergrößern, dann skalieren und wiederholen Sie diesen Fortschritt.Wiederholen Sie die Animation mit neuen animierten API
Allerdings kann ich es nicht herausfinden. Ich habe versucht, schreiben einige Code wie unten
class TestProject extends React.Component {
constructor(): void {
super();
this.state = {
bounceValue: new Animated.Value(0),
v: 1,
};
}
componentDidMount() {
this.state.bounceValue.setValue(1.5);
let animation = Animated.timing(this.state.bounceValue, {
toValue: this.state.v,
});
setInterval(() => {
animation.stop();
if (this.state.flag) {
this.state.v = 0.5;
this.state.bounceValue.setValue(0.5);
}
else {
this.state.v = 1.5;
this.state.bounceValue.setValue(1.5);
}
animation.start();
}, 5000);
}
render(): ReactElement {
return (
<View style={styles.imageContainer}>
<Image
style={styles.image}
source={{uri: 'http://image142-c.poco.cn/best_pocoers/20130517/91062013051716553599334223.jpg'}}
/>
<Animated.Text
style={[
styles.test,
{transform: [
{scale: this.state.bounceValue},
],}
]
}>
haha
</Animated.Text>
</View>
);
}
}
aber funktioniert nicht sehr gut.
Jeder Vorschlag wird zu schätzen wissen.
vor dem Schleifen sollten Sie überprüfen, ob die Animation beendet oder abgebrochen wurde, sonst können Sie sie nie stoppen. Siehe meine Antwort unten: http://stackoverflow.com/questions/31578069/repeat-animation-with-new-animated-api/38393479#38393479 – joshblour
Finden Sie Silyjewsks Antwort. Das ist veraltet. –
Sie können auch this.state.yourAnimation.stopAnimation() verwenden, wenn Sie componentWillUnmount –