天才教育網(wǎng)合作機(jī)構(gòu) > 設(shè)計(jì)軟件培訓(xùn)機(jī)構(gòu) > Flash培訓(xùn)機(jī)構(gòu) >

東莞設(shè)計(jì)培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:設(shè)計(jì)軟件培訓(xùn)資訊 > Flash培訓(xùn)資訊 > Flash中音量和左右聲道平衡的控制

Flash中音量和左右聲道平衡的控制

日期:2005-12-24 00:00:00     瀏覽:333    來源:東莞設(shè)計(jì)培訓(xùn)網(wǎng)

  我們看到在網(wǎng)上有許多用Flash制作的MTV作品,做MTV最重要的一個(gè)元素當(dāng)然是從外部導(dǎo)入的音樂文件,今天我們著重說說最常見的聲音控制:包括聲音的開始和停止、控制音量、控制左右聲道平衡等。

  有關(guān)Flash中聲音的控制語句請參考《Flash音頻使用詳解:聲音函數(shù)》。

  這里主要使用了以下聲音控制語句:
mysound=new Sound(target);
mysound.attachSound("idname");
mysound.start(secondOffet,loop);
sound.setVolume(volume);
sound.setPan(pan);


  示例效果如下:

  一、音樂的播放和停止

  (1)首先從外部導(dǎo)入一個(gè)音樂,也就是用File>Import導(dǎo)入。或直接從Window>Common Libraie>Sounds中拖一個(gè)到舞臺上。

  (2)然后選擇Window>Library。從中選中你剛導(dǎo)入的音樂,并按鼠標(biāo)右鍵,選中其中的Linkage,如下圖:


  (3)在跳出的Symbol Linkage Properties對話框中,在Linkage中選Export this symbol,在identifier中輸入你想要取的音樂名字,如"likesound"。如果你用的是flash mx,則選擇Export for ActionScript。如下圖:




  (4)接著從庫中選擇兩個(gè)按鈕,并放在舞臺上,如下圖:


  (5)在*個(gè)開始按鈕上捆綁如下代碼:

on (release) {
  s=new Sound();
  s.attachSound("likesound");
  s.start(0,6);
}

  (6)在第二個(gè)停止按鈕上捆綁如下代碼:

on (release) {
  s.stop()
}

  代碼說明:其中s=new Sound()是創(chuàng)建一個(gè)聲音對象,用法是mysound=new Sound(target);,target是你希望聲音創(chuàng)建到哪個(gè)電影剪輯中,默認(rèn)的是創(chuàng)建在主Timeline中。

  第二句mysound.attachSound("idname")的作用是指定Library中聲音的調(diào)用,idname就是剛才我們在Symbol Linkage Properties中取的名字。

  要使聲音開始播放還要用第三句mysound.start(secondOffet,loop);其中secondOffet,就是指定聲音從第幾秒開始播放,Loop就是播放后的循環(huán)次數(shù)。*s.stop()就是停止音樂播放。你也可在括號中指定要停止播放的音樂的idname,在這里就不需要了。

  上面實(shí)現(xiàn)了對音樂的播放和停止控制,接著我們看看實(shí)現(xiàn)如何來控制音量。

  二、音量的控制

  (6)從庫中選一個(gè)按鈕放在舞臺上,把這個(gè)按鈕轉(zhuǎn)換成MovieClip。這樣做的目的是能把這個(gè)按鈕既可以接受電影事件也能接受按鈕事件,如下圖:



  (7)在這個(gè)按鈕的電影剪輯上加入以下代碼
  onClipEvent (load) {
    top = _y;
    left = _x;
    right = _x;
    bottom = _y+100;
  }
  onClipEvent (enterFrame) {
    if (dragging=true) {
      _root.s.setVolume(100-(_y-top));
    }
  }

  (8)通過雙擊這個(gè)電影剪輯,或通過選中這個(gè)電影后再選Edit>Edit Symbol,進(jìn)入該電影剪輯的編輯狀態(tài),選中按鈕本身,在這個(gè)按鈕上捆綁以下代碼

  on (press) {
    startDrag ("", false, left, top, right, bottom);
    dragging = true;
  }
  on (release) {
    stopDrag ();
    dragging = false;
  }

  代碼解釋:首先是在電影上的Load事件下,這里做的是初始化的工作,這里的left和right是同一個(gè)值,它的作用是使按鈕只能在上下被拖動(dòng),不能左右移動(dòng)。而bottom是比top多了100,這樣按鈕只能被向下拖動(dòng)100個(gè)像素的位置。

  然后在enterFrame事件中,是一個(gè)判斷語句,dragging=true就是按鈕正在被拖動(dòng),它是被設(shè)置在下面的按鈕里的,當(dāng)按鈕在拖動(dòng)時(shí),draggin=true;當(dāng)stopDrag()時(shí),dragging=false。如果判斷是true時(shí)執(zhí)行root.s.setVolume(100-(_y-top));這個(gè)語句的作用是當(dāng)按鈕在被拖動(dòng)時(shí),根據(jù)此時(shí)按鈕的_y位置,來設(shè)置音量。

  這里用到了sound.setVolume(volume)這個(gè)新的語句,sound是你是你建件的new sound()的名稱,我們這里是s,volume是一個(gè)從0-100的數(shù)字,0為聲音最小,100為*。

  現(xiàn)在你知道為什么一開始就用bottom=_y+100吧?看看100-(_y-top)在原始狀態(tài)下是100,但只要隨著按鈕的拖動(dòng),_y越來越大,而top是一個(gè)固定的初始值。兩者的差越來越大,這樣整個(gè)值就越來越小,*至0,取值范圍在0-100間。

  下面接著來做調(diào)節(jié)聲音的平衡。

  三、調(diào)節(jié)聲音的平衡

  (9)從庫中選一個(gè)按鈕放在舞臺上,把這個(gè)按鈕轉(zhuǎn)換成MovieClip。這樣做的目的是能把這個(gè)按鈕既可以接受電影事件也能接受按鈕事件。(此例是最下的那個(gè)按鈕,既橫向的那個(gè))做好后如下圖:


  (10)在這個(gè)按鈕的電影剪輯上加入以下代碼

  onClipEvent (load) {
    top = _y;
    bottom = _y;
    left = _x-50;
    right = _x+50;
    center = _x;
  }
  onClipEvent (enterFrame) {
    if (dragging=true) {
      _root.s.setPan((_x-center)*2);
    }
  }

  (11)通過雙擊這個(gè)電影剪輯,或通過選中這個(gè)電影后再選Edit>Edit Symbol,進(jìn)入該電影剪輯地編輯狀態(tài),選中按鈕本身,在這個(gè)按鈕上捆綁以下代碼(和上次的操作完全相同)。

  on (press) {
    startDrag ("", false, left, top, right, bottom);
    dragging = true;
  }
  on (release) {
    stopDrag ();
    dragging = false;
  }

  代碼解釋:在enterFrame事件中,是一個(gè)判斷語句,dragging=true就是按鈕正在被拖動(dòng),它是被設(shè)置在下面的按鈕里的,當(dāng)按鈕在拖動(dòng)時(shí),draggin=true,但當(dāng)stopDrag()時(shí),dragging=false。如果判斷是true時(shí)執(zhí)行_root.s.setPan((_x-center)*2);這個(gè)語句的作用是當(dāng)按鈕在被拖動(dòng)時(shí),根據(jù)此時(shí)按鈕的_x位置,來設(shè)置音量。

  這里用到了sound.setPan(pan)這個(gè)新的語句,sound是你是你建件的new sound()的名稱,我們這里是s,pan是一個(gè)從-100至100的數(shù)字,0為聲音在兩個(gè)聲道均衡分配,100為右聲道*,-100為左聲道*。至于里面的(_x-center)*2是一個(gè)從-100至100之間變化的變量,它的原理是根據(jù)_x坐標(biāo)的變化而變化,相信大家一看就會(huì)明白。原文件下載學(xué)習(xí)

如果本頁不是您要找的課程,您也可以百度查找一下: