为什么flag怎么会变成true?

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

jellen

2015-12-29 10:37

flag在setInterval外面定义成true,这个局部一旦变成false 怎么可能再变换成true呢?


写回答 关注

3回答

  • 狸木南
    2016-02-09 22:15:11

    老师的代码好像有点问题,你要不把flag放setInterval里面,要不就

    if(flag){

    clearInterval(obj.timer);

    if(fn){

    fn();

     }

    }else{

    flag=true;

    }


  • 土爷
    2016-01-09 17:39:52

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

    土爷

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

    2016-01-09 17:57:40

    共 1 条回复 >

  • 狂飙的蜗牛_1
    2015-12-29 10:46:26


    想让它变为false只能flag=false,!flag只是代表了false


JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题