改寫動機:原版我跑不出來……
Gustavo Ribeiro Amigo 的 Javascript Sound Kit 讓你用 JavaScript 操作網頁上的 mp3 音效,用的是 Flash 所以在跨瀏覽器方面表現不錯。
應自己需要,把原本的 Sound.js 改寫為 Soundbb.js,內容大致一樣只是寫作風格不同;原本的 SoundBridge.as 則是加上另一個 fla 編譯為 SoundBridgeBridge.swf(多包一層所以名稱也多個 Bridge……)。主要修改點如下:
- 改名 Soundbb.js 和 SoundBridgeBridge.swf
- 用 Prototype.js (1.6.0) 的 Class.create 寫成一個 Soundbb Class
- 增加 Soundbb._isReady 和 Soundbb.onReady() 免得哪壺不開提哪壺 → 錯誤
- 增加 Soundbb._enabled 可全面開關 Sound 方法有效/無效
- 建立物件時可傳入
{ autoLoadSound: somepath.mp3 }便會在 ready 時先行讀取 - SoundBridge.as 裡拿掉了
this.sound.checkPolicyFile = true;因為我編譯不過,對不起…… - Flash 裡加了
System.security.allowDomain("*");避開跨網域存取的安全性限制
基本使用例:
var se = null;
document.observe("dom:loaded", function() {
Soundbb.swfLocation = 'SoundBridgeBridge.swf'; // 預設值為 '/SoundBridgeBridge.swf'
se = new Soundbb({ autoLoadSound: 'sound.mp3' }); // 預先讀取(其實是用 se.loadSound('sound.mp3', false); )
});
someAction = function(){ // 需要音效的時候
se.start();
};
詳細用法請參閱 ActionScript 2.0 的 Sound API,JavaScript Sound Kit 原設計就是直接叫 Flash 的方法;也可參看原版 Javascript Sound Kit 和它在 SourceForge 上的專案頁。
原始碼檔案在這裡,著作權聲明:原作者 Gustavo Ribeiro Amigo 保留所有權利 Copyright © 2006, Gustavo Ribeiro Amigo All rights reserved.