我正在尝试使用XMLHttpRequests和AudioContext加载音频,我的代码如下所示:
class AudioExample
audioContext: null
init: ->
AudioContext = window.AudioContext || window.webkitAudioContext
@audioContext = new AudioContext!
# r = xmlhttprequest magic
r.onload = (e) ->
rr = e.target #XMLHttpRequest{response: ArrayBuffer, song: Object, si: Object}
@audioContext.decodeAudioData rr.response, (buffer) ->
# ...
错误为TypeError: Cannot read property 'decodeAudioData' of undefined.
当我在console.log中调用audioContext时,我得到了一个有效的audioContext对象,为什么在代码执行时它未定义?
答案 0 :(得分:1)
绑定函数存在问题;您可以在console.log @
内加r.load = (e) -> ...
来诊断它。
解决方案是使用r.onload
绑定~>
处理程序:
r.onload = (e) ~> ...
检查Bound Functions的LiveScript文档。