這是參考網路中找到的範例、再加上自己想要的功能,如果語法有錯,敬請留言指導。
ActionScript 3.0
目標:
我參考的範例[教學] ActionScript3.0 簡易音樂播放是將音樂檔匯入元件庫中,而我是改成載入外部連結的寫法,並且新增上一頁、下一頁按鈕,希望邊看圖可以邊聽音樂。
所以應該可以說是類似簡易電子書或照片播放器吧,但我放圖的方式,是用最簡單的方式,一個影格放一張圖,然後用按鈕切換頁面。
練習作品在這裡
準備工作:
1。製作「播放」影片片段元件,設定的實體名稱是musicStart_mc
「播放」影片片段元件中:
musicStart_mc裡面第五影格要新增關鍵影格、並將播放的圖改成暫停的圖。
musicStart_mc裡面第一、第五影格都增加影格動作 stop();
(此部份若需要詳細圖解說明,請參考此範例:[教學] ActionScript3.0 簡易音樂播放)
2。製作「停止」影片片段元件,設定的實體名稱是musicStop_mc
3。製作「顯示音樂播放進度的長方形bar」(影片片段元件),設定的實體名稱是musicPlayBar_mc
4。製作「上一頁」、「下一頁」影片片段元件,設定的實體名稱分別是backPage_mc、nextPage_mc
5。將元件都擺到版面上去(下圖是我練習作品擺放方式,僅供參考),版面調整好。
6。回到主場景後,按F9,將下列程式全部copy貼進去
請注意
1。由於我是參考BelleaYa的教學再修改,因此下面將修改及新增的部份改成紅色。
2。第五行程式中「playsnd.load(new URLRequest("mp3網址"));」,裡面的mp3網址是我暫放的,之後也許會刪除、連結也許會失效,有興趣練習的人請改成其他的mp3網址喔!
以下程式開始
stop();
var playsnd:Sound=new Sound();
var playsndCh:SoundChannel=new SoundChannel();
playsnd.load(new URLRequest("http://www.ehomework.com.tw/Material2/VOICE/e2_Xmas.mp3"));
var playsndTime = 0;
musicStop_mc.buttonMode = true;
musicStart_mc.buttonMode = true;
musicPlayBar_mc.scaleX = 0;
musicStop_mc.addEventListener(MouseEvent.CLICK, doStop);
musicStart_mc.addEventListener(MouseEvent.CLICK, doStart);
function doStop(e:MouseEvent):void
{
if (playsndCh)
{
playsndCh.stop();
playsndCh = null;
playsndTime = 0;
musicStart_mc.gotoAndStop(1);
}
}
function doStart(e:MouseEvent):void
{
if (playsndCh)
{
playsndTime = playsndCh.position;
playsndCh.stop();
playsndCh = null;
musicStart_mc.gotoAndStop(1);
}
else
{
playsndCh = playsnd.play(playsndTime);
musicStart_mc.gotoAndStop(5);
playsndCh.addEventListener(Event.SOUND_COMPLETE, soundComplete);
}
}
function soundComplete(e:Event):void
{
if (playsndCh)
{
playsndCh.stop();
playsndCh = null;
}
playsndTime = 0;
musicPlayBar_mc.scaleX = 0;
musicStart_mc.gotoAndStop(1);
}
this.addEventListener(Event.ENTER_FRAME, doPlayBar);
function doPlayBar(e:Event):void
{
if (playsndCh)
{
musicPlayBar_mc.scaleX = playsndCh.position / playsnd.length;
}
}
nextPage_mc.addEventListener(MouseEvent.CLICK, goNext);
backPage_mc.addEventListener(MouseEvent.CLICK, goBack);
function goNext(e:MouseEvent):void
{
nextFrame();
}
function goBack(e:MouseEvent):void
{
prevFrame();
}
程式結束
後續說明:
我這個練習是自己做紀錄當筆記用,還是有問題沒處理,例如
1。
我想加調整音量的功能,試了兩種方法,都還沒完全成功。
2。
當在播放音樂時,切換下頁之後,再按上頁回去,當按回第一頁時musicPlayBar_mc就不跑了,這部分我不知道是什麼問題@@
若完全依照原範例[教學] ActionScript3.0 簡易音樂播放來做,只是添加上下頁按鈕的話,按回第一頁時並不會有「musicPlayBar_mc」不跑的問題,所以,也許是載入外部連結的部份有改錯吧?
文章標籤
全站熱搜

音量的我也要試試看~~~ 我查到的是用SoundTransform var soundVolume:SoundTransform= new SoundTransform(); 音量是soundVolume.volume = 0.5; 音量在0~1之間 之後 playsndCh.SoundTransform = soundVolume;
調整音量的功能,我今天改出來了,也是像你說的用SoundTransform, 你可以參考我後來補的那篇,裡面有我找到的範例,及修改後的完整程式,還有錯誤訊息= = 另外,我原本也想把音量一開始設定在0.5 , 但之前光是要把這個音量的功能加進原本的練習裡面就不斷的出錯, 所以這部分我後來是沒修改,還是依照我找的那個範例,預設音量為1。
哈囉~ 好久不見哩... 針對你的程式 function goBack(e:MouseEvent):void { prevFrame(); } 最簡單的改法,加入一個判斷語法試試看吧,把程式改成如下: function goBack(e:MouseEvent):void { if(this.currentFrame>2){ prevFrame(); } } 意思是:不要讓點選上一頁 跑到第一個影格 因為在第11行程式 有 musicPlarBar_mc.scaleX=0; 當點選上一頁跳到第一個影格時 會把那個musicPlayBar_mc設為0 就發生musicPlayBar_mc不跑的情況了 所以第一個影格就跟你原來設計一樣,記得不要放圖片 想要展示的圖片就從第2個影格開始設置 試試看吧^^ 希望有幫助到囉....
感謝你的建議^^ 上一頁的按鈕改成你說的,的確可以解決回到第一頁時musicPlayBar_mc不跑的問題。 我剛又試驗一次,若完全依照原範例[教學] ActionScript3.0 簡易音樂播放(http://belleaya.pixnet.net/blog/post/27789751)來做,只是添加上下頁按鈕的話,按回第一頁時並不會有「musicPlayBar_mc」不跑的問題。 而是在我改成載入外部音樂的寫法之後,才會有那個問題的,所以也許是這部份有出錯。
自己補充一下參考筆記(建構 Sound 物件的方法) http://webchain.oreilly.tw/boohover/curriculum/flash/as/Sound.htm 將上面的這行程式「var playsndCh:SoundChannel=new SoundChannel();」 改成「var playsndCh:SoundChannel」,就不會有上下頁按鈕切換回第一頁時musicPlayerBar_mc不跑的問題,但那條bar會閃一下= =
所以如果不打new SoundChannel()就可以唷...? 好怪XD 有時候都會卡在宣告變數的問題上面...
我最近都在忙別的事情, 所以這部分就暫時沒再繼續研究了^^
我也是XDD 一開學整個事情多到不行~~
^^ 最近天氣多變化,大家多多注意身體健康.