我正在制作一个简单的RockPaperScissors应用程序,其中我使用gif作为手部动画。
第一次播放动画时一切正常,但是如果您希望第二次播放gif,
(例如,一次选择两次岩石)
然后它仅显示gif的起始帧,而不会重播它。
此处提供代码:
小部件:
new Image(
image: gameInstance.getPlayer1Choice(),width: 500.0,height: 500.0,)
点击功能:
onpressed: () {
setState(() {
gameInstance.play(
kRPSValues['rock']['game_value'],);
});
},
play()函数只是将一个键分配给var _userChoice(0到2,每个键代表石头,纸张或剪刀)
getPlayer1Choice()函数
ImageProvider getPlayer1Choice() {
return AssetImage(user1ChoiceImage[_userChoice]);
}
和user1ChoiceImage cosnt:
const user1ChoiceImage = {
0: "assets/paper-animation.gif" /*paper*/,1: "assets/stone-animation.gif" /*rock*/,2: "assets/scissors-animation.gif" /*scissors*/
};
每次img src更改时,是否有办法使gif从头开始?
总结:
- 如果您是第一次选择摇滚,它将播放整个gif,然后,如果您选择纸张,则它将播放整个gif,但是如果您选择已经第二次播放过的gif,例如再次晃动,它仅显示gif第一帧的静态图像
谢谢!