tween 如何实现异步执行

如何实现一个父亲节点下的各个子节点按顺序执行每个字节点tween,用for循环children[i],都是结果同时执行tween,求大神点拨,谢谢

1赞

每个开始运动之前加个delay呗

1赞

试了也不行

new Promise() 嵌套进去
就可以await async执行了

1.let promise=【】
2.promise.push(new Promise(tween(node1)))
3.promise.push(new Promise(tween(node1)))
4.promise.push(new Promise(tween(node1)))

5.再执行await promise.all() 是这样吗?
试了promise.all()不行呀

。。。。 :joy:
Promise用法错了。你是怎么跑起来的
new Promise(resolve=>{
xxxxxx
resolve()
})

我上面语法就是写个大概,实际是和你一样用法,但是promaise.all()不行

promaise.all()是指,等待全部完成后回调,是同时开始,并不会按顺序开始。

你这个需求和promaise并没有什么必然联系,当然,用promaise或者async会更好,可以直接循环。

但有鉴于根据上面的提问你编程水平应该不算很高,所以我建议一种简单做法:
用一个数组把要tween的参数记下来(注意只是参数,不是现在就tween()),然后在每个tween的complite事件里,再开始tween下一个元素(可以设置一个index来记录当前轮到哪个)。

突然想念flash时代的timeline lite,直接丢进去就按顺序了。

我试试看,我的代码水平确实很差,非常感谢!

用自循环,第一个动画调完了再run第二个子节点的action

每个子节点延时不同时间 tween(node).delay(i * 0.2).to(…).start();

1赞