Flash聲音控制詳解

來源:互聯網
上載者:User
控制|詳解

  聲音是多媒體的重要組成元素,恰當、靈活地運用聲音往往是多媒體作品的成敗關鍵。Flash作為人們喜愛的多媒體工具,其聲音的使用方式也豐富多樣,本文探討了在Flash中使用聲音的幾種情況,希望能對大家有所協助。

 

    一、在時間軸中使用聲音

 

    這是Flash中聲音最常使用的方式,任何一本Flash教材都會講到這個問題,所以只作簡單說明。

 

    在設定一個主要畫面格後,只要你匯入了音效檔,在幀屬性面板都能進行該幀的聲音設定。聲音的同步屬性(Sync)主要有以下幾種:

 

    1.事件(Event)。用這種方式設定的聲音會獨立於時間軸播放,只要你沒有用其它方式中止,它會一直播放下去直到結束,其最大好處是可以用來設定一些類似迴圈的播放效果,只要你把它後面的迴圈屬性(Loop)設定得足夠大。

 

    2.開始(Start)。其特點是,當該幀開始播放,將停止動畫中前面幀調用的聲音,只播放當前幀中的聲音。

 

    3.停止(Stop)。設定後,將立即停止播放當前幀的聲音。

 

    4.資料流(Stream)。設定後,會使動一的播放與聲音同步,如果動畫下載速度跟不上聲音,將跳過相關幀而保持與聲音同步。另外,如果在播放中設定了(Stop)動畫停止,聲音也將停止;但如果使用play()語句,聲音又將從停止處接著播放。

 

    二、用ActionScript語句調用聲音

 

    Flash提供了強大的指令碼編輯功能,幾乎能與一些專門的程式設計語言相媲美,在多媒體方面可謂更勝一籌,用Flash指令碼語言調用聲音,在無論是效果還是靈活性,都值得一試。

 

    1.加入聲音

 

    匯入外部聲音,按Ctrl+L鍵,彈出庫視窗,選中匯入的聲音,單擊右鍵,在快顯功能表中選擇“連結”功能表項目,彈出“連結屬性”對話方塊,先選中“為動作指令碼匯出”複選框,此時對話方塊上部的“標識符”一欄將變得可用,在其中輸入其標識名,在此我們假設輸入為“sd”,此標識將在程式中作為該聲音的標誌,故多個聲音不得使用同一個標識符。

 

    在Flash時間軸上的第一幀輸入以下語句:

 

      mysong = new Sound()

      mysong.attachSound("sd")

 

    以上語句先定義一個聲音事件mysong,再用mysound.attachSound("sd")語句將庫中的聲音附加到此聲音事件上。

 

    2.聲音的播放與停止

 

      在需要播放的幀加入“mysong.start()”語句可讓聲單播放。

 

      需要停止時,加入“mysong.stop()”語句則可。

 

    3.調用外部音效檔

 

    Flash可以在播放時動態載入外部mp3檔案,此方法既為多媒體設計提供了更大的靈活性,也能有效地減小作品所佔的磁碟空間。實現方法如下(假設同目錄下有music.mp3檔案):

 

    mysong=new Sound()

    mysong.loadSound("music.mp3",false)

 

    說明:第一行語句建立一個聲音事件或聲音流,第二行將music.mp3載入到聲音事件事聲音流上,loadSound()語句中的false為可選能數,為false時表示mysound為聲音事件,為true時表示mysound為聲音流,建議使用聲音事件,以便於控制;如果使用聲音流,則聲音停止後將不能再用mysond.start()播放。

 

    三、聲音迴圈播放

 

    前面說過,在時間軸上設定主要畫面格的聲音同步屬性為Event時,輸入足夠大的迴圈次數,可使聲音產生類似迴圈播放的效果,但是,這種迴圈僅是類似而已,一者次數再多,總有播放完畢的時候;二者一旦停止,就很難再次播放。下面,向大家介紹一種用代碼實現的真正迴圈,而且,還可用一個按鈕實現聲音的播放也停止切換,想播就播,想停就停,豈不快哉。

 

    我們可在時間軸的第一幀加入如下代碼:

 

      mysong = new Sound()

      mysong.attachSound("sd")

      mysong.onSoundComplete = function() {

      mysong.start()   }

 

    以上代碼的第三行是實現迴圈的關鍵,它建立了在調用 onSoundComplete 事件時執行的函數,onSoundComplete 為聲音播放完畢時自動調用的事件,這樣,當聲音播放完畢後自動執行mysong.start(),使聲音不斷播放。如果聲音播放時被代碼停止( mysong.stop() ),聲音是不會重複播放的。

 

    將以上代碼加入到一個按鈕的動作中並稍加改動,便成為一個控制聲音播放與停止的切換按鈕。

 

    先在時間軸第一幀代碼後加上:

 

    mysong.play()  //使聲音在動畫開始時播放

    var soundkey=1  //定義變數soundkey,監視聲音播放情況

 

    然後在時間軸上插入一個新層,放一個按鈕在上面,選中按鈕,按快速鍵“F9”,調出動作編輯視窗,輸入以下代碼:

 

    on(release){

      soundkey=-soundkey   //使變數值為原值相反數

      if(soundkey==1){

       mysong.stop()

       mysong.start()

        }              //如果soundkey值為正,則播放聲音,mysong.stop()使聲音停止後再播,以免聲音產生疊加,影響效果

      if(soundkey==-1){

        mysong.stop()  

        }             //如果soundkey值為負,則聲音停止

     } 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。