课程
/前端开发
/Html5
/HTML5音乐可视化
n = ++ count;这里n的值啥时候会和count不相等呢
2016-03-29
源自:HTML5音乐可视化 2-5
正在回答
说的通俗点就是onload函数是有执行时间的,所以即便click执行以后,cont自增了,load函数内部的n虽然和cont相等,但是onload函数中的n还是上一次的n,所以就不会继续执行下去,只有最后点击的那一次的load里的n和onload里的n是相等的,所以和cont也是相等的,所以才会正常播放,不再出现同步播放
用到了闭包的原理,每个load都会创建一个n,这个n因为内部函数onload调用,所以形成闭包,在函数执行完之后该n变量仍存在(且值一直为当时的值)onload的环境里面,所以当onload执行时,n就可能不等于现在的count(因为count一直在增长)
我不知道我是否理解对了...供参考
var n = ++count;//n在函数作用域中,count是全局变量,如果还没执行完就点击count会改变,而n不会
每执行一次load(),都会声明一个n,比如点击三次,就会有三个n,它们分别的值是1,2,3.但是count是全局变量,点击三次之后count是3.所以前面两个n不等于count,不会顺利执行。只有最后一次点击时声明的n与count相等。所以只会播放最后一次点击的音频。
二露
正常情况都是相等的,这个判断只是异常(不相等)情况下 就不执行下面decode和播放
举报
利用webAudio和canvas可视化你的音乐,让你的音乐动起来
1 回答xhr.onload 内部,加粗的 n 永远等于 count ,可见,其下的第一个n!==count 是没有意义的。
1 回答2:51时候那是什么插件?
1 回答为何我引入js文件的时候报404错误呢, css文件也没写路由啊
1 回答不会搭建node环境
1 回答怎么处理暂停和播放啊?start方法说是不能重复调用呢