Egret社区

请教tween.to 是否可以这样用

2019-11-19 12:04
2684
        代码如下:在循环里给移动对象设置tween.to 的多个点数值,以便按照固定的路线移动,但结果是只移动到了第一个设置点(有缓动效果)就停了,停了一会后直接移动到了最后的设置点(无缓动效果),请问这是为什么,是tween.to 不能这样用吗?
            let tween:egret.Tween;
            tween = egret.Tween.get(moveElement,{onChange:this.checkSwapDepth,onChangeObj:moveElement})
            for(var i in roadPosList){
                let p = roadPosList[i];
                let index = Number(i);
                let currentx = moveElement.x;
                let currenty = moveElement.y;
                if(index>0){
                    currentx = roadPosList[index-1][0];
                    currenty = roadPosList[index-1][1];
                }
                let distance = Person.getDistance(currentx,currenty,p[0],p[1]);
                let costTime = Person.getCostTime(distance);

                tween.to({x:p[0],y:p[1]},costTime)
            }
            tween.call(()=>{
                complete.apply(moveElement);
            })

分享到 :
0 人收藏

4 个回复

倒序浏览
Hjx  圆转纯熟 | 2019-11-19 19:09:47
可以这样用  for循环里面写的to等于 直接to一样的效果  你可能其他地方写法有问题 你可以自己随便定几个值 循环试下就知道了
ywx620  略有小成 | 2019-11-25 15:44:03
不能这样使用!你在for中设置了它只会移动到你最后一个位置,for是瞬间完成的,这个只是替换替换,最后替换到最后一个。你需要做的是等第一个动作结束后的回调函数里面再去加下一个动作。
记忆碎片  初学乍练 | 2019-11-26 17:37:22
是可以这样用,但你这样实现不了你想要的效果,tween是异步的
youwh  登堂入室 | 2019-11-27 11:53:43
加个delay什么的吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

leeyonglan

登堂入室

积分: 11 帖子: 15 精华: 0

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部