请教下,cc.tween 是否有暂停,继续的函数?用 tween 改变 progressbar 的 progress 属性时,无法暂停?

使用tween 改变progressbar的progress属性时,用stopAllActions无法停止该动作。pauseAllActions也无法暂停···
只能用tween 的stop
另外,现在没有发现针对tween 的暂停,继续的函数是什么···
再问下大佬们,tween 的 hide 和 show 是改变active,还是opacity?

1赞

var a = cc.tween(obj).to(xxxxxxxxxx);
a.stop();

this.node.pauseAllActions 与 this.node.resumeAllActions 对 tween 是有效的。

show 与 hide 执行的是关闭节点的渲染组件。

我说了····用了stop了······

您好,pause和resume对于 放大,位置之类的动作却是有效

像我说的,想改变改变progressbar的progress属性,这个动作就没有效果了·····
当然,我可以自己stop,再start,也算是解决办法

我就是想问下,tween有没有 单独提供接口来控制?

tween的适合不能改变其他属性,太傻了,很之前的playAction的区别,还是换回playAction了

这不是官方推荐的嘛······
所以我才用······
2dx还有个api叫 progressTo······
哎,自己倒是能实现,可寻思着用官方标配呢·····

LZ最后怎么解决的啊?

emmm
自己stop tween,然后重新start····

研究了好久,只能这样了

你这样继续start的时候有问题

1赞

个人比较喜欢以前的FRP (functional reactive programming) 风格的Action的API
tween的api风格感觉不如Action版的爽,而且对类型检查不太友好。

跟我这儿是一毛一样的需求。我用tween控制了一个getset属性,根据这个属性的变化来实现某些缓动效果。结果,没法暂停。

然而使用了easing之后,这种stop start就配不上前后的easing了。

这个需求其实很合理啊,动画中有方向,如果使用stop,start方法,会出现方向不对的问题

是啊,这个需求很合理

var obj = { value: 0 };
var tween = cc.tween(obj).to(2,{value:1});
//当前动作执行的时间
var tween_elapsed = tween._finalAction._elapsed;
tween_elapsed++;
//当前动作总时长,赋值是为了防止恢复的时候,动作已经判定完成
var tween_duration = tween._finalAction._duration;
tween._finalAction._duration = Number.MAX_VALUE;
//恢复
tween._finalAction._elapsed = tween_elapsed;
tween._finalAction._duration = tween_duration;
你可以试试这个取巧的方式,我用的是2.4.8的,其他版本的引擎应该也大差不差。