Laya的Tween缓动没有初始化repeat导致的Bug

Posted gamedaybyday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laya的Tween缓动没有初始化repeat导致的Bug相关的知识,希望对你有一定的参考价值。

 

当你使用一个Tween给一个图标做旋转动画,循环播放。(repeat是播放次数, repeat=0无限循环,repeat=1播放一次)

Laya.Tween.to(this.light,rotation:360,2000).repeat = 0;

 

然后你打开一个Dialog,很有可能这个Dialog会无限播放打开动画....

Laya.Dialog.open(game/TestDialog.scene);

 

原因是Tween是放在对象池里的,从对象池取出来时没有初始化repeat,当播放Dialog动画时拿到的Tween有可能就是那个无限循环的Tween。

 

laya.core.js, Tween.to从对象池拿Tween对象

技术图片

 

 

 

laya.core.js,  Tween初始化时,没有重置repeat。

技术图片

 

 

 

所以我加了一行重置repeat

技术图片

 

以上是关于Laya的Tween缓动没有初始化repeat导致的Bug的主要内容,如果未能解决你的问题,请参考以下文章

tween 缓动动画

AS2 tween缓动

利用tween.js算法生成缓动效果

Unity NGUI TWEEN

runaction 旋转_使用cc.tween(缓动系统)代替runAction

window.requestAnimationFrame与Tween.js配合使用实现动画缓动效果