貌似用setTimeout比较好,
var test = function () {
setTimeout(function () {
test ()
}, 1000)
}
test ()
好像setInterval每次都会重新定义一个计时器,比较耗资源
var test = function () {
setTimeout(function () {
test ()
}, 1000)
}
test ()
好像setInterval每次都会重新定义一个计时器,比较耗资源
2017-12-14
这个程序还有一点小小的bug,如果你将网页最小化或者切换到别的标签页时,再切换回来会出现离开这段时间内的小球同时出现。我的解决办法就是使用windows.onfocus(网页获得焦点)和windows.onblur(网页失去焦点),两个函数来监听事件,当网页获得焦点时直接刷新页面就解决了,但个人认为能将动画中断最好,继续学习相关知识之后回来在修改把,还有就是当页面大小改变时并不能像静态网页一样实时刷新效果,所以我用windows.onresize监听出现页面变化之后刷新网页。
2017-12-11
发现就算用来Math.min(300,cnt)也无济于事,把页面刷新一下,马上缩减页面,过一会后打开还是会有堆积,只不过堆积的小球数不会超过300个而已;在画布内的小球数快要达到300时,会减少小球绘制数量,比如balls.length==298 那么新绘制的小球数则为2,按照你们的效果来说就是,新弹出来的小球只有两个。
最后一个案例,不是填充之后不是colsePath会帮你自动闭合路径,而是因为老师这里填充的颜色与边框相同,且边框的宽度较小,所以看起来和自动闭合没有区别。锯齿的出现是因为边框宽度较大而造成的,因为填充颜色时并不会填充到边框,导致首位有一部分边框‘出头’了。