這篇教程為“Flash AS 實例進階教程”的一部分。查看全套教程>>>>。
源文件下載
>>>>>點擊查看動畫效果<<<<<
實例2-2聲音控制
(1)基本思路①建立一個可由 AS 控制聲音對象。
②將庫中指定的聲音附加到這個對象上。
③ 制作一個有放音和消音圖標的 MC 。
④開始為自動播放,并有放音圖標顯示。
⑤第一次點擊 MC 后,顯示靜音圖標,存儲當前音量值,同時音量設為 0 。
⑥再次點擊,顯示放音圖標,并為聲音對象設置已存儲的音量值。
?。?)新知識點
mySound=new Sound();// 新建一個聲音對象,我們這里對象的名稱是 ”sheng” 。
mySound.attachSound(); 從庫中加載聲音。
mySound.getBytesLoaded(); 獲取聲音載入的字節數。
mySound.getBytesTotal(); 獲取聲音的總字節數。
mySound.start(); 開始播放聲音。括號中若填制整數值,即從聲音播放后的這一秒開始播放。
mySound.stop(); 停止聲音的播放。
mySound.getVolume(); 獲取當前的音量大小 ( 范圍從 0-100) 。
mySound.setVolume(); 設置當前音樂的音量 ( 范圍從 0-100) 。
mySound.duration; 聲音的長度。 ( 單位為毫秒, 1000 毫秒= 1 秒)
mySound.position; 聲音已播放的毫秒數。 ( 單位為毫秒)
?。ǎ常嵗f明① 第一幀插入一個有補間動作的MC“搖椅”。
② 導入到庫一聲音文件,右擊該文件,選菜單【鏈接】,在出現的對話框中進行設置,
如圖 2-1 :
圖2 -1 鏈接屬性面扳
其中的【標識符】即為對象命名,這樣程序才能識別和控制,和前面課程講的為MC注冊實例名及 duplicateMovieClip 后的MC名同理;【鏈接】中選中“為動作腳本導出”和“在第一幀導出”,前者是確定要接受動作腳本控制,后者是確定要在生成SWF文件時被導出。
③ 制作一命名“控制”的有喇叭放音和消音圖標的 MC ,在第一幀初始化,第 2 幀停止。
?。?) 編寫動作腳本
?、?在 MC “控制” 第 1 幀輸入:
i = 0;
this.lb2._visible = 0;
② 在 MC “控制” 第 2 幀輸入:
stop();
?、壑鲿r間軸第 1 幀輸入:
sheng = new Sound();// 構建一個 Sound 對象“ sheng ”
sheng.attachSound("ge");// 將庫中的聲音文件 ”ge” 加載到聲音對象上
sheng.start(3);// 令聲音從第 3秒開始播放
?、茏詈笠粠斎耄?/p>
if (sheng.position == sheng.duration) {// 條件為已播放長度等于聲音總長度
sheng.start(3);// 從第 3 秒重新播放
}
gotoAndPlay(2);
?、?在 MC “控制” 上輸入:
on (release) {
if (i == 0) {
n = _root.sheng.getVolume();// 獲取當前的音量值并賦值給變量 n
_root.sheng.setVolume(0);// 設置 Sound 對象的音量為0
this.lb1._visible = 0;
this.lb2._visible = 1;
i = 1;
} else {
_root.sheng.setVolume(n);// 設置 Sound 對象的音量為 n
this.lb1._visible = 1;
this.lb2._visible = 0;
i = 0;
}
}
?。?)小結本講介紹了 Sound 類的常用的方法,更多的內容可在幫助文件里查看到,靜音是讓音量降到 0 ,而不是停止,恢復播放只是要恢復原來的音量,而播放的進度還是不改變的,這節是在 MC 上用 on() 事件處理函數實現了和按鈕 相同的控制效果, MC 上使用 on() 可更靈活多樣, MC 內部可以嵌套 MC ,并可以加寫動作腳本。
?。?)課后練習制作一個有圖標顯示的控制聲音播放和暫停的實例,要求暫停后再播放要從該點開始,每次播放結束后返回到起始狀態,效果范例:
>>>>>點擊查看動畫效果<<<<<
練習2-2
這篇教程為“Flash AS 實例進階教程”的一部分。查看全套教程>>>>。
新聞熱點
疑難解答