稍微改寫了 Javascript Sound Kit
改寫動機:原版我跑不出來……
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.
有 3 個意見
您好!您的檔案裡有 SoundBridge.as 和 SoundBridgeBridge.fla 兩個原始檔,請問可以把兩個合併在一起嗎?因為我想加入一個新的函式,匯出的時候一直出錯....=(
嗨,這是 ActionScript 2.0 的東西了,當時我也有點瞎湊,建議不要用這支程式吧~
匯出時有報什麼錯嗎? 如果加新函式前就無法匯出,有可能是 Adobe Flash 匯出選項的問題。
我看到您用 jQuery 寫的新程式,那邊的 AS 我也比較看得懂啦!謝謝你!(我之前一直搞不定 allowDomain 這個部分,原來要寫成 system.Security.allowDomain();,lol)
☂