我已经在android中创建了给卡片动画。当我收到服务器的响应时,应该运行此动画。因此,在游戏开始时,我应该给所有玩家提供卡片。
1)我的第一种方法是遍历播放器并为每个给定的GiveCardAnimation运行,但随后动画不会彼此等待完成
2)第二种方法是在循环内部使用Handler,但这在服务器中只起作用一次,有时我可以得到2次GiveCardToAllPlayers。因此,这个GiveCardPlayer函数应该等到动画完成为止
Handler()。postDelayed({
giveCardToPlayer(playerId)
}, duration * index)
当一个播放器的动画结束时,如何为其他播放器再次运行此GiveCardPlayer函数?
我认为您正在寻找的是AnimationListener中的onAnimationEnd(),其中您的动画对象采用一个实现了这样的Animation Listener的对象
animation.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationEnd(animation: Animation?) {
giveCardAnimationForNextPlayer()
}
override fun onAnimationStart(animation: Animation?) {}
override fun onAnimationRepeat(animation: Animation?) {}
}