聲音ActionScript的編寫與控制

來源:互聯網
上載者:User
控制   前言:一個好的flash作品,缺少了聲音,就如同人不會講話一樣。而flash中對聲音的支援也非常不錯,除了可以使用時間軸放置音效檔之外,我們還可以使用AS來更加準確的控制聲音!

  一、FLASH中如何建立聲音控制項
  如果想控制動畫中的聲音,我們可以使用flash中的sound對象,通過sound命令建立一個新的sound對象。之後再用attaceSound命令串連到庫裡的聲音,就可以用來控制動畫中的聲音了。
  常用命令講解:
  new Sound() 此命令用來建立一個新的sound對象,有了sound對象我們才能用AS來控制聲音。
  attachSound("庫中的聲音") 此命令可以使我們建立的聲音對象串連到庫裡的聲音,以便進行控制。
  start([從第幾秒開始播放, 迴圈次數])  此命令可以是聲音開始播放,裡面的兩個參數是可選的。
  stop()  停止聲音的播放。
  setVolume(音量層級) 此命令可以控制聲音的音量高低,音量層級只能是從0-100之間的數字。
  呵呵,羅嗦了半天,現在咱們也應該用AS先做一個簡單的小例子了。

  二、建立一個簡單的聲音播放動畫,可以實現簡單的開始與停止播放聲音。
  操作步驟:
  1、建立一個flash文檔,按Ctrl+R(檔案\匯入)匯入一個音效檔,音效檔可以是MP3或WAV格式的。音效檔匯入之後,在舞台上是看不見的,必須開啟庫才能看到我們匯入的聲音。如圖:

  2、選中庫中的音效檔,單擊滑鼠右鍵,在彈出的菜單中選擇“連結...”將會彈出一個連結的對話方塊,請勾選“為動作指令碼匯出”和“在第一楨匯出”選項,並輸入一個標識符:mysound (名字可任意寫),單擊確定。如下圖:
 
  3、回到主舞台,選中時間軸的第一楨,按F9開啟動作面板。現在我們要建立一個新的聲音對象,並且串連到庫裡的聲音。用來控制聲音。輸入以下指令碼:
music = new sound();//建立一個名字叫music的聲音對象。
music.attachSound("mysound");//將這個聲音對象與庫裡的標識符為“mysound”的聲音串連。
  完成指令碼如下圖:

  4、現在需要在舞台上放置兩個按鈕分別控制聲音的播放與停止。選擇“視窗”--“公用庫”--“按鈕”,開啟flash為我們設定的公用按鈕元件庫,再將Circle Buttons中的Play按鈕和Stop按鈕拖放到舞台上。

  5、此時,舞台上將有播放和停止兩個按鈕,選中Play按鈕,開啟動作面板,輸入以下指令碼:
on (release) {
music.start();
}//播放聲音
 選中Stop按鈕,輸入以下指令碼:
on (release) {
music.stop();
}//停止播放聲音
  6、OK,一個簡單的控制聲音播放與停止的例子就完成了,快按Ctrl+斷行符號來測試吧。(點擊這裡下載該例源檔案)

  三、建立一個稍微複雜的例子,用來滑動按鈕來控制聲音的音量。
  操作步驟:
  1、建立一個flash文檔,並按Ctrl+R匯入一個音效檔。
  2、參照上個例子,開啟庫,並把匯入的音效檔設定一個鏈界標識符。這裡設定標識符為“mysound”。
  3、選中舞台時間軸第一楨,開啟動作面板,建立一個新的聲音對象,串連庫中聲音,並播放這個聲音。輸入指令碼如下:
music = new sound();
music.attachSound("mysound");
music.start(1, 10);//播放聲音,從第一秒開始播放,並迴圈10次
  4、現在需要一個按鈕做為滑動按鈕,用來控制聲音的音量!按鈕可以自己製作或使用公用庫中的按鈕,此例中我使用公用庫中的按鈕。請在舞台適當位置放置一個按鈕執行個體。如下圖:

  5、選中按鈕,開啟動作面板輸入以下指令碼:
on (press) {
this.startDrag(false, left, top, right, bottom);//開始拖動這個按鈕,並且要規定它的拖動範圍,分別由四個變數控制,4個變數的初始值稍後設定。
drag = true;//用一個變數來判斷這個按鈕是否被拖動了。如果它被拖動了,變數值為true(真)
}
on (release, releaseOutside) {
this.stopDrag();//當鬆開按鈕或在按鈕外部鬆開,就停止拖動。並且下面的drag變數為假,表示按鈕沒有被拖動。
drag = false;
}
  完整指令碼如圖:

  6、再次選中這個按鈕,並按F8鍵將它轉換成一個影片剪輯!起名為:控制音量。也就是“控制音量”這個影片剪輯裡麵包含了剛才的按鈕。如圖:

  7、選中舞台上這個控制音量影片剪輯的執行個體,開啟動作面板,現在要設定拖動範圍的4個初始值和設定音量大小控制。請輸入以下指令碼:
onClipEvent (load) {//當這個flash動畫一開始,就設定下面4個變數的初始值。為了使按鈕只能上下拖動,所以,拖動範圍的左、右都固定!只能讓按鈕在上下100象素以內拖動。
top = _y;
left = _x;
right = _x;
bottom = _y+100;
}
onClipEvent (enterFrame) {
if (drag == true) {//如果按鈕被拖動了,就開始執行下面的設定音量的演算法,用來控制音量。
_root.music.setVolume(100-(_y-top));//設定音量大小,比較難理解的是裡面的演算法:100-(_y-top),通過代入數字來協助我們理解,如果_y的值是100,我們的top值也是固定的為100。當拖動按鈕往下時,_y值就會變大,比如變為130,那麼_y-top就等於30了,在用100-30就等於70,這個70就是音量的層級了。伴隨著按鈕越往下拖,音量級就會變的越小,那麼也就實現音量的控制了。
}
}
  完整的指令碼如下圖:

  8、現在就來測試你的成果吧!(點擊這裡下載該例源檔案)

  結束語:通過以上兩個例子,應該要掌握的就是建立sound對象播放、停止聲音,以及控制聲音的方法。

相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。