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