【发布时间】:2021-02-18 18:37:18
【问题描述】:
我正在用颤振构建一个大奖游戏。实际上,我有一个带有累积奖金背景的堆栈和 3 个随 Timer.periodic 变化的图像资产。
我想通过动画改变让事情变得更漂亮。我最初的方法是使用无限的 ListView,它会不断添加元素并每次移动到列表的最后一个位置。
我怎样才能做到这一点?
这是我构建 Jackpot 的代码部分:
class Jackpot extends StatelessWidget {
final List<String> imgUri;
Jackpot(this.imgUri);
@override
Widget build(BuildContext context) {
return Container(
child: Expanded(
flex: 0,
child: Stack(
children: [
Image.asset(
'src/images/jackpot_long_500.gif',
height: 300,
width: 700,
fit: BoxFit.fill,
),
Positioned(
left: 35,
top: 60,
child: Image.asset(
imgUri[0],
height: 180,
width: 200,
fit: BoxFit.fill,
),
),
Positioned(
left: 256,
top: 60,
child: Image.asset(
imgUri[1],
height: 180,
width: 200,
fit: BoxFit.fill,
),
),
Positioned(
left: 470,
top: 60,
child: Image.asset(
imgUri[2],
height: 180,
width: 200,
fit: BoxFit.fill,
),
),
],
),
),
);
}
}
这是更改图像的代码:
_startAnimations(GameArguments args) {
Timer.periodic(
Duration(milliseconds: 100),
(Timer t) {
print(t.tick);
setState(() {
index1 = _random.nextInt(10);
index2 = _random.nextInt(10);
index3 = _random.nextInt(10);
if (t.tick == 50) {
winner = _random.nextInt(10);
print('reached t tick = 50');
index1 = winner;
index2 = winner;
index3 = winner;
t.cancel();
print(args);
_applyDesc(args);
Timer(Duration(seconds: 1), () => _showMyDialog());
}
});
},
);
}
我知道这是重复的并且充满了不良做法。我只是在测试一些功能。
提前感谢您的帮助!
【问题讨论】:
标签: flutter listview dart stack