2013-05-08 38 views
0

我試圖在SoundManager2中的聲音完成播放時使用onfinished來發射一個函數。我的代碼如下:當使用SoundManager2時,會發生onfinish火災

function createSound(id, path) { 
    mySound = soundManager.createSound({ 
      id: id, 
      url: path, 
      volume: 100, 
      onfinish: playNextSound(id), 
      (...) 
      }, 
    }); 
    return mySound; 
} 

function playNextSound(id) { 
    (...) 
    alert("Done!"); 
} 

但是,什麼情況是,該功能火災(並顯示報警)時,我點擊播放,這顯然不是什麼是應該發生的。我已經嘗試將onfinish放在play()函數中,但無濟於事。

任何想法可能是錯的?

回答

1

因爲您正在執行playNextSound函數並將其返回值指定給onfinish

你應該做這樣的:

onfinish: playNextSound, 
+0

我將如何再參數傳遞給playNextSound?我是否必須內聯該功能? (這很長...) – haroba 2013-05-08 20:53:56

+1

只需在'createSound'函數內部放置'playNextSound'函數,並確保從函數聲明中刪除'id'參數:'function playNextSound(){'。然後,函數內的任何對'id'的引用都將引用傳遞給'createSound'的'id'。 – idbehold 2013-05-08 22:03:07