cocos creator 的fillrange 添加一些缓动效果,完全没有思路

现在的需求是对图片的填充增加一个缓动的效果,就是填充的线快后慢,不知道怎么实现,求助!!!

creator编辑器的动画编辑功能就可以实现

如果要动态设置终点的进度的话,就只能自己写缓动了吧

每次都是缓动效果,动画编辑器实现不了

这个填充是类似于进度条那种吗?从0走到一个进度值,你可以自己设定这个进度值吗?

是的,填充简单,但是填充每一段都要有先快后慢的效果,不知道怎么实现

1赞

自己写个二次函数,想怎么动就怎么动

引擎有没有提供相应的action?, 就像-x版本的ProgressTimer

比如:
进度条分成X段,每段的最大长度为Y
写个schedule,每隔T执行一次,
每次执行的时候判断长度,
如果:当前长度 / 最大长度Y <= 75% ,那么,执行填充,速率 = n ;
如果:当前长度 / 最大长度Y 》75%,那么,执行填充,速率 = N

可行不?

好像只能手动实现这个动画

1赞

手动实现了个-x版本的ProgressTimer,需要的同学拿去。

progressTimer: function(time, from, to) {
    let action = cc.delayTime(time);
    action.update = function(progress){
        let node = action.getTarget();
        let pro = node.getComponent(cc.ProgressBar);
        pro.progress = from+(to-from)*progress;
        if(to>from && pro.progress>to)pro.progress = to;
        if(to<from && pro.progress<to)pro.progress = to;
    }

    return action;
}
1赞

楼主找到好的办法了吗?同求,一样的问题

//这样的缓动填充行吗?
cc.Class({
extends: cc.Component,

properties: {
    testNode: cc.Node,
},

onLoad() {
    let test = this.testNode.getComponent(cc.Sprite);
    cc.tween(test)
        .to(1, { fillRange: 1 }, { easing: 'expoIn' })
        .start()
},

});

1赞

如果是特定的填充
在updata里面每次对fillRange+= dt*自定义速度或者函数就好了

大佬牛逼,这个完美解决了问题