我正试图播放声音文件" mouseover"。它在我将.mp3文件的路径硬编码时起作用,代码如下所示。
我的值,包括多个.mp3文件的路径,都存储在.csv文件中。 我需要找到一种方法来喂养'变量的路径值。
这是我的初始元素。有多个节点,从.csv解析中获取值。鼠标悬停时,我可以播放 - "硬编码路径" - .mp3文件ok:
labelEnter.append("span") .attr("class", "bubble-sound") .attr("height", 40 ) .attr("width", 70 ) .attr("src",(d) -> "sounds/"+fileValue(d)) .on("mouseover", (d, i) -> playSound d.file) playSound = (d) -> # hardcoded here in next line snd.setAttribute "src", "sounds/Hungarian_FSI_1_0.00.06.059-0.00.07.229.mp3" snd.load() snd.play() return snd = new Audio() onPlay = (e) -> snd = new Audio() snd.addEventListener "play", onPlay
我试图将从.csv解析的路径值转换为snd.setAttribute语句,即用一个变量替换硬编码路径,该变量保存该节点的路径值。 以下代码显示了' file'的正确值。在console.log中,但它显示未定义的" setAttribute"路径
playSound = (d) -> file = fileValue(d) # console log shows desired value of 'file' console.log("Show me " + file) # 'file' undefined snd.setAttribute "src", "sounds/"+file snd.load() snd.play() on "mouseoverreturn
我的问题,初学者,我如何操纵/设置文件变量,以便它正确地附加到源路径:" sound / file-value-as-string-here"在setAttribute语句中?非常感谢你。
答案 0 :(得分:1)
尝试这样的事情:
playSound = (d) ->
file = fileValue(d)
# console log shows desired value of 'file'
console.log("Show me " + file)
# 'file' undefined
snd.setAttribute("src", "sounds/"+file); //<-- this line changed
snd.load()
snd.play()
答案 1 :(得分:0)
感谢您的回复;这是我的最终解决方案:
playSound = (d) ->
file = fileValue(d)
console.log("Show me " + file)
snd.setAttribute("src", "#{file}")
snd.load()
snd.play()
return
snd = new Audio()
onPlay = (e) ->
snd = new Audio()
snd.addEventListener "play", onPlay