2016-05-12 168 views
0

我知道它的一个重复的问题,但我不知道如何在我的情况下做。 我想用JS Buzz库播放音频。请检查以下内容将字符串转换为JS对象

var pg1 = new buzz.sound("oimages/music/as.mp3"); 
var pg2 = new buzz.sound("oimages/music/zx.mp3"); 
var pg3 = new buzz.sound("oimages/music/as.mp3"); 

在某个事件中,我想播放此音频。这里1,2和3是页码。请检查下面

$("#flipbook").bind("turned", function (event, page, view) {; 
    bog ='pg'+page; // page is the number of page here 
    window.bog.play(); //error 
}); 

它给了我下面的错误

Uncaught TypeError: window.bog.play is not a function

请指导。

回答

1

因为bog ='pg'+page;是一个字符串,而不是声音文件的引用。

您需要引用声音假设他们在全球范围内,你可以用括号标记

var bog = window['pg'+page]; 
+0

感谢。 –

-1

评估会做的伎俩:

$("#flipbook").bind("turned", function (event, page, view) {; 
    bog ='pg'+page; 
    eval('window.' + bog + '.play()'); 
}); 
1

简单的错误。您试图错误地引用变量。 bog是不是这个名字,但它包含名称...

$("#flipbook").bind("turned", function (event, page, view) {; 
    bog ='pg'+page; // page is the number of page here 
    window[bog]play(); //error 
}); 

这假定pg1..3变量具有全局范围。如果他们不然后更改声明来...

window.pg1 = new buzz.sound("oimages/music/as.mp3"); 

等。