关于egret.Tween传递参数的问题

 参考:

setTimeOut传参数(转)

setTimeout传参数 CSDN

一、延迟后执行,并输出参数

        for(let i=0;i<10;i++){
            egret.Tween.get(this).wait(200).call(()=>{
                console.log(i);
            },this);
        }

输出: 

??? 为什么先监听的后输出... 

尝试使用setTimeout,循环延迟1s,输出i,输出值和预期一致。

        for(let i=0;i<10;i++){
            setTimeout(()=>{
                console.log(i);
            },1000);
        }

 

看来Tween的有点问题...

 

二、延迟后执行,并输出参数

        for(let i=0;i<10;i++){
            egret.Tween.get(this).wait(200).call((i)=>{
                console.log(i);
            },this);
        }

 输出:

企图从匿名函数传递i值,结果...

 尝试用setTimeout

        for(let i=0;i<10;i++){
            setTimeout(function(i){
                console.log(i);
            },1000);
        }

结果一样,都是undefined

  

原文地址:https://www.cnblogs.com/gamedaybyday/p/9541024.html