2016-05-12 221 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"); 

等。