我认为最终的fn不会执行。

来源:6-2 完美运动框架

慕媛

2015-12-06 23:36

json处理后的运动框架并不兼容链式运动,主要是这段代码不会执行:if (flag) 

{

clearInterval(obj.timer);

if(fn){

fn();

}

}

flag被置为false之后就没有为true的机会了。

写回答 关注

4回答

  • 狸木南
    2016-02-09 22:06:43

    if(icur!=json[attr]){

    flag=false;

    }else{

    flag=true;

    }

    改成这样就好了。。。

    qq_请叫我... 回复狸木南

    你这个还是不是没得卵用

    2016-04-04 15:30:44

    共 2 条回复 >

  • 土爷
    2016-01-09 17:40:53

    因为flag是全局变量,定时函数内没有定义这个变量,所以每30毫秒执行一次代码都需要重新读取函数外的flag变量,该变量的默认值是true。只有当条件成立时,即其中一个当前值不等于目标值时,才会变成false。变量作用域的知识再去了解一下,就会懂了。

    土爷

    我理解错了,不好意思。默认值已经改变了,所以还是要在判断语句中加上 else{flag=true;} 因为只要等于当前值等于目标值,speed等于零,就算不关闭定时器,属性值也不会有变化,但是会影响链式运动不执行!

    2016-01-09 17:57:58

    共 1 条回复 >

  • wslover
    2015-12-07 09:51:19

    在条件达到时候再将其设置成true 不就可以了吗?  把其它代码再贴出来或者说一下基本要完成的功能看看》。。

  • 李晓健
    2015-12-07 09:42:41

    给一下完整代码看看

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题