張國團
摘要:聲音是多媒體課件中的重要元素,聲音與其他媒體巧妙結合,可使課件更加生動和富有感染力。課件制作中,聲音的控制是個比較復雜的問題。用Flash工具制作課件時,常用的幾種聲音控制中有三種聲音控制需要一些技巧:一是在課件的同一頁上讓聲音停止和從頭播放,如背景音樂;二是讓聲音暫時停止和繼續(xù)播放,如給動畫加的配音、解說等;三是在兩頁之間進行內容切換時,一頁中的聲音停止,另一頁的聲音播放,或兩頁中的聲音都停止。本文就這三種情況,分別介紹了制作的方法與技巧。
關鍵詞:Flash;課件制作;聲音控制;方法;技巧
一、在課件的同一頁上讓聲音停止和從頭播放
最簡單的方法是做一個影片剪輯,這個影片剪輯有兩個圖層,假設一個命名為“聲音”,另一個命名為“按鈕”。將要使用的聲音文件導入到“庫”以后,選中“聲音”圖層的第1幀,在“屬性”面板上的“聲音”列表框中選擇所導入的聲音文件,“同步”列表框中選擇“開始”;再在“聲音”圖層的第2幀插入關鍵幀,并選中該幀,在“屬性”面板的“聲音”列表框中再次選擇這個聲音文件,“同步”列表框中選擇“停止”。在“按鈕”圖層的第1幀和第2幀分別放已經做好的兩個按鈕元件“音樂關”和“音樂開”,并使這兩個按鈕在舞臺上的位置重合,這樣在通過這兩個按鈕進行聲音停止與播放切換時,在視覺上只看到按鈕上文字的變化,即“音樂關”與“音樂開”的切換。做法是:①在第1幀放入按鈕“音樂關”;②在第2幀插入實關鍵幀;③選中第2幀中的“音樂關”按鈕,點“屬性”面板中的“交換”,再在“交換元件”對話框中選擇“音樂開”。如果第1幀上放的按鈕是“音樂關”,則為“音樂關”添加動作語句on(press){gotoAndstop(2)},給第2幀上的按鈕“音樂開”添加動作語句on(press){gotoAndstop(1)},并給其中一個圖層的第1幀添加語句stop(),使播放頭停在第1幀。至此這個影片剪輯就做好了,它控制聲音的原理是:先是播放頭停在第1幀,播放聲音,當按下按鈕“音樂關”時,播放頭跳轉并停止到第2幀,聲音停止,按鈕變成了“音樂開”,當再按下按鈕“音樂開”時,播放頭又跳轉并停止到第1幀,聲音又從頭開始播放,按鈕也變成了“音樂關”。最后把這個做好的影片剪輯放入需要的頁即可。
二、讓聲音暫停和繼續(xù)播放
仍以影片剪輯為例,把要控制的動畫和聲音都放到這個影片剪輯中。在這個影片剪輯中根據實際需要插入多個圖層,其中一個名為“聲音”,一個名為“按鈕”。假設從第1幀開始播放聲音,先選中“聲音”圖層的第1幀,在“屬性”面板的“聲音”列表框中選擇已導入的聲音文件,“同步”列表框中選擇“數據流”;給“按鈕”圖層的第1 幀添加兩條語句p=0;和Stop();,其中p是定義的一個變量,將在下面的用來控制聲音的按鈕的動作語句中使用。在按鈕圖層的第1幀放已經制作好的按鈕“放&停”,給“放&?!卑粹o添加動作語句:
on(press){
if(p==0)
{play();p=1;}
else
{stop();p=0;}
}
這樣做完后,第一次用鼠標左鍵按下按鈕,動畫和聲音開始播放,再次按按鈕就停止,再按又播放……以此類推,實現了用1個按鈕控制聲音暫停和繼續(xù)播放。
它控制的原理是這樣的:首先我們在使用聲音時(這里“聲音”圖層的第1幀),在幀“屬性”面板上的“同步”類型中選擇的是“數據流”,而“同步”類型選擇“數據流”時,聲音的播放與停止跟其所在的時間軸上播放頭的運動和停止同步;然后,我們給“按鈕”圖層的第1幀加了Stop()語句,使播放頭處于停止狀態(tài)(假設此處控制的動畫和聲音先是停止的),同時又給p賦值為0,所以p的值為0時標志著播放頭處于停止狀態(tài),如果p的值不為0,比如為1,播放頭處于運動狀態(tài);當第一次用鼠標左鍵按下(press)按鈕時,通過if(p==0) 判斷的結果是:由于此時p的值是0,所以p==0為真(說明播放頭處于停止狀態(tài)),執(zhí)行play()和p=1語句,使播放頭移動,并改p的值為1(非0即可);當第二次按下按鈕時,通過if(p==0)判斷,由于此時p的值不為0,所以p==0為假(說明播放頭處于運動狀態(tài)),執(zhí)行else下面的語句stop()和p=0,使播放頭停止,并改p的值為0,為下一次點擊按鈕時,根據p的值判斷執(zhí)行哪個語句作準備。
三、兩頁間內容切換時聲音的控制
兩頁間內容切換時控制聲音主要用stopAllsounds()語句,即當用按鈕方式進行內容切換時,除跳轉語句外,按鈕上還應添加stopAllsounds()語句,但是,stopAllsounds()語句不能很隨意地添加到按鈕的動作語句中,而是要根據實際情況,與跳轉語句巧妙配合來實現聲音的控制。
第一種情況是,只讓當前頁正播放的聲音停止,而不影響其他頁的聲音。這時要先執(zhí)行stopAllSounds(),后執(zhí)行跳轉語句。比如從第1幀跳到第2幀,讓第1幀正播放的聲音停止,而第2幀上的聲音立即播放,則按鈕上的語句是on(press){stopAllSounds();gotoAndStop(2);}或on(press){ stopAllSounds();gotoAndPlay(2);}(適合任意2個挨著幀的情況)。
第二種情況是,讓播放頭當前所在的幀和將要跳過的幀,以及所要跳到的那幀的聲音都停止:這時要先執(zhí)行跳轉語句,后執(zhí)行stopAllSounds()。比如從第1幀跳到第3幀,讓第1、2、3幀的聲音都停止,則按鈕上的語句是on(press){ gotoAndStop(3);stopAllSounds();}或on(press){ gotoAndPlay(3);stopAllSounds();}(適合跳過任意1幀的情況)。
第三種情況是,讓播放頭當前所在的幀和將要跳過的幀聲音停止,而所要跳到的那幀的聲音不受影響。如果是從右向左跳,先執(zhí)行stopAllSounds(),后執(zhí)行跳轉語句,這與第一種情況中的用法相同;而如果是從左向右跳,那就要采取以下技巧:假設要跳轉到的頁在第y幀上,則在制作課件時,在第y幀的前面y-1幀處空1幀(插入空關鍵幀,不放任何內容),控制按鈕上的語句是on(press){ gotoAndPlay(y-1);stopAllSounds();}(注意不能加gotoAndstop(y-1),第y-1幀上也不要加stop()語句,如果想在第y幀處停止播放頭,可在第y幀上加stop()),用gotoAndplay(y-1)的作用是,讓播放頭從第x幀跳轉到第y幀的前一幀第y-1幀處并播放,這樣按鈕上的stopAllsounds()語句可以使第x幀(當前頁)和第y-1幀(其實沒有內容)以及x到y(tǒng)-1之間所有幀的聲音都停止,但不會影響到第y幀上的聲音。由于跳到第y-1幀后向下播放,迅速到了第y幀(如果幀頻為12fps,則只用0.08秒的時間),所以從視覺上來看,跟從第x幀跳轉到第y幀時的效果相同。
(作者單位:盤錦職業(yè)技術學院)