這是參考網路中找到的範例、再加上自己想要的功能,敬請留言指導。 音樂播放+音量大小聲按鈕的練習作品在這裡 (開啟檔案可能需要一些時間,因為此篇我有把音樂檔匯入元件庫,雖然後來改用載入外部音樂,但這個檔案沒有把那個音樂檔拿掉,所以檔案較大) ActionScript 3.0 說明:   我參考的範例是:用ActionScript 3.0控制声音音量大小   執行的時候音樂會直接出現,而且是預設音量最大,所以「音量加大」與「音量減少」的按鈕,一開始只能按「音量減少」按鈕,當你按了「音量減少」按鈕之後,「音量加大」就可以按了。   如果完全按照他的說明,新開檔案照做一次,這個範例是不會出現錯誤的。 目標:   我想將這個範例的功能,加進我上一篇的練習裡面。   所以要把「執行的時候音樂會直接出現」改掉,並且新增「音量加大」與「音量減少」的按鈕、及控制程式。 準備工作: 1。製作「音量加大」與「音量減少」的影片片段元件,設定的實體名稱分別是volumePlus、volumeMinus 請注意 1。由於我是以上一篇練習【ActionScript 3.0】音樂播放+看圖翻頁功能為基礎,再參考用ActionScript 3.0控制声音音量大小這一篇而做修改,因此下面將修改及新增的部份改成紅色。 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/002.mp3")); var playsndTime = 0; var transformSound:SoundTransform=new SoundTransform(); transformSound.volume = 1; playsndCh.soundTransform = transformSound; volumePlus.addEventListener(MouseEvent.CLICK,addVolume); volumeMinus.addEventListener(MouseEvent.CLICK,reduceVolume); volumePlus.buttonMode = true; volumeMinus.buttonMode = true; stage.addEventListener(Event.ENTER_FRAME,setVolume); var soundVolume:Number = 10 function setVolume(e:Event):void { transformSound.volume = soundVolume / 10; playsndCh.soundTransform = transformSound; if (soundVolume==10) { volumePlus.enabled = false; } else if (soundVolume==0) { volumeMinus.enabled = false; } else { volumePlus.enabled = true; volumeMinus.enabled = true; } } function addVolume(e:MouseEvent):void { if (soundVolume<10) { soundVolume += 2; } } function reduceVolume(e:MouseEvent):void { if (soundVolume>0) { soundVolume -= 2; } } 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。在FLASH裡面編輯的時候,只要一按執行,就會出現這個錯誤訊息「Error #1009: 無法存取 Null 物件參考的屬性或方法」,但發布出來的SFW還是可以正常執行。有關這個錯誤,雖然我有去查了一下,(例如這篇FLASH AS3.0的TypeError: Error #1009: 無法存取 Null 物件參考的屬性或方法。)但我看不懂@@(還是我找錯文章?)今天還沒有花很多時間查這個問題,所以也不知道怎麼改善。 2。因為這篇是繼承上一篇練習【ActionScript 3.0】音樂播放+看圖翻頁功能,所以上一篇的切換頁影響musicPlayBar_mc的問題還是存在@@



文章標籤
全站熱搜
創作者介紹
創作者 大俠夫人(Canru) 的頭像
大俠夫人(Canru)

大俠夫人的家

大俠夫人(Canru) 發表在 痞客邦 留言(8) 人氣(1,966)