gpt4 book ai didi

reactjs - 如何在 React Native 中播放 Lottie 动画(.json 文件)的片段

转载 作者:行者123 更新时间:2023-12-04 13:15:13 25 4
gpt4 key购买 nike

我只想使用 lottie View 在 react native 中播放一段动画
长度约为 5 秒,而 speed={1} 我只想播放前 3 秒然后转到下一个屏幕
代码在下面

LogoScreen.js :

import React from 'react';
import { StyleSheet, View, Image, TextInput, StatusBar, Text } from "react-native";
import Icons from 'react-native-vector-icons/Ionicons';
import LottieView from "lottie-react-native";

export default class ChatScreen extends React.Component {

onAnimationFinish = () => {
this.props.navigation.navigate("Login")
}
render () {
return (
<View style={styles.container}>
<StatusBar barStyle="light-content" backgroundColor="#161f3d" />
<View>
<LottieView
source={require('../assets/animations/lottie/MotionCorpse-Jrcanest.json')}
style={{ justifyContent: "center", alignSelf: "center", height: "100%", width: "100%" }}
autoPlay
loop={false}
speed={1}
onAnimationFinish={this.onAnimationFinish}
/>
</View>
</View>
)
}

最佳答案

好吧,您可以通过多种方式来做到这一点,其中一种方式如下所示。

您可以使用 ref 手动播放,然后在 3 秒后重定向到下一个屏幕。

import React from 'react';
import { StyleSheet, View, Image, TextInput, StatusBar, Text } from "react-native";
import Icons from 'react-native-vector-icons/Ionicons';
import LottieView from "lottie-react-native";

export default class ChatScreen extends React.Component {

componentDidMount() {
this.anim.play();

setTimeout(() => {
this.props.navigation.navigate("Login")
}, 3000);
}

render() {
return (
<View style={styles.container}>
<StatusBar barStyle="light-content" backgroundColor="#161f3d" />
<View>
<LottieView
source={require('../assets/animations/lottie/MotionCorpse-Jrcanest.json')}
style={{ justifyContent: "center", alignSelf: "center", height: "100%", width: "100%" }}
autoPlay={false}
loop={false}
speed={1}
ref={animation => { this.anim = animation; }}
/>
</View>
</View>
)
}
}

另一种方法是,如果您知道确切的帧数,那么您可以播放动画直到该帧在 3 秒内完成。 Lottie 文档中已经提到了它。
this.animation.play(30, 120);

关于reactjs - 如何在 React Native 中播放 Lottie 动画(.json 文件)的片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61137195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com