| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> JS新玩法:使用setTimeout()来模拟周期可变的setInterval() -> 正文阅读 |
|
[游戏开发]JS新玩法:使用setTimeout()来模拟周期可变的setInterval() |
问题描述: 使用setTimeout动态的修改setInterval的周期依次为a,a+b,a+2b,a+3b,...,a+nb。并在指定时间后停止这个周期函数。 问题关键点: (1)动态的修改setInterval的周期 (2)在指定时间后停止这个周期函数 问题实现思路: 针对第一个点,动态的修改setInterval的周期,直接在原始的interval上修改是不会生效的,也就是下面这种写法:
打印结果如下: 如果想要生效,只能通过先清空上一次的interval,然后赋予新的interval,才能达到修改周期的目的。代码如下:
细心的同学应该发现了,这是一个递归的过程。 上述代码中重复的部分就是我们要递归的内容,我们把公共部分抽出来,然后把这个函数变成一个递归函数:
?运行结果如下: 可以发现,我们想要动态修改周期的目的已经达到了~ 细心的同学可以发现,这里的setInterval是可以用setTimeout来替换的。 实际上,这里的setInterval起的作用和setTimeout一样。 原因是,我们每到一个周期结束时就会使用clearInterval()来清除这个周期函数,然后重新生成一个新的周期函数,赋予它新的周期,从而实现动态修改周期函数的周期的目的~ 因此,我们可以把这里的setInterval换成setTimeout:
它们的执行结果是一样滴~ 至此,我们使用setTimeout来动态修改周期函数的周期的目的就达到啦~ 接下来,我们来实现第二点:在指定时间后结束这个周期函数。 第一个点里实现的周期函数,如果没有外力代码来强行阻止的话,这个周期函数会一直执行下去。 如果我们想要在指定时间后结束它的话,再加一个定时器就好啦~ 这里的核心点只有一个:那就是多个定时器之间可以并行,不会冲突。 因此我们再来完善一下代码:
控制台输出一下: 可以发现,我们在指定时间之后中断周期函数的目的就达到啦~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 17:46:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |