好的,我是一個總閃光as3 noob,所以這一定很容易解決我猜。我正在用閃存cs6製作一個帶有錄製聲音的音板,非常簡單:1個畫面,10個按鈕,每個按鈕都會發出不同的聲音。問題是這些聲音重疊,所以我需要的是當我按下一個按鈕時,其他聲音停止播放。有人請嗎?FLASH AS3聲音重疊
回答
請參閱Sound
類中的play()
方法文檔,它將返回一個SoundChannel
對象,該對象具有stop()
方法。
所以你可以那樣做(示意圖):
var currentChannel:SoundChannel;
button1.addEventListener(MouseEvent.CLICK, onButtonClick);
button2.addEventListener(MouseEvent.CLICK, onButtonClick);
button3.addEventListener(MouseEvent.CLICK, onButtonClick);
function onButtonClick(event:MouseEvent):void
{
/* provided you have implemented selectSoundByButton func somewhere */
const sound:Sound = selectSoundByButton(event.currentTarget);
if (currentChannel) {
currentChannel.stop();
}
currentChannel = sound.play();
}
更詳細的描述:
比方說,你想創建另一個閃光燈屁按鈕的應用程序。這就是你必須做的:
- 創建一個按鈕符號,將它添加到舞臺並在屬性選項卡中給它一個實例名稱。我們稱之爲myButton
- 使用file-> import將聲音添加到庫中
- 將此聲音導出到actionscript。右鍵單擊庫中的聲音,在「actionscript選項卡」上選中「導出爲動作腳本」,「在幀1中導出」。填充「Class」輸入,並輸入聲音所需的類名(例如MySound)
然後,您必須觸發單擊按鈕上的聲音播放。所以,你應該把下面的代碼到你的flash影片的第一幀:
SoundMixer.stopAll();
如果你是:
import flash.media.Sound; import flash.media.SoundChannel; import flash.events.MouseEvent; var currentChannel:SoundChannel; const mySound:Sound = new MySound(); function onClick(e:MouseEvent):void { if (currentChannel) { currentChannel.stop(); } currentChannel = mySound.play(); } myButton.addEventListener(MouseEvent.CLICK, onClick);
播放聲音之前,這對每個按鈕的代碼添加直接從Adobe Flash中的時間線添加動作,不需要導入類。如果你從一個IDE工作像的FlashDevelop或FlashBuilder,該代碼添加到開始(Package {
後):
import flash.media.SoundMixer;
編碼愉快!
它解決PO問題,但通過提供潛在的另一個問題。投票下來。 SoundMixer.stopAll();將停止當前播放的任何聲音,而不僅僅是問題中提到的聲音。如果PO後來需要背景音樂呢?或者如果其他聲音應該在其他地方播放?這裏提供的解決方案會產生比解決問題更多的問題。 – BotMaster
知道這不是一個壞的功能。我已經建議了比這更深入的東西(比如將按鈕聲音存儲到變量並在播放下一個聲音之前停止當前聲音)。 但是,OP公佈他們是一個noob,我懷疑他們正在添加背景音樂。對於不知道或想要編碼的人來說,這是一個快速解決方案。 –
- 1. 重疊的聲音
- 2. Flash AS3定義聲音結束時間
- 3. Flash AS3 - OGG聲音延遲(Adobe Alchemy庫)
- 4. FMOD播放重疊聲音
- 5. 重疊的聲音和StandingWave3
- 6. 重疊的聲音在Javascript
- 7. 運行時間的聲音與flash上的actionscript 3重疊9
- 8. 重疊的聲音的ActionScript 3/AIR
- 9. as3聲音類卸載聲音
- 10. 重疊的聲音我的JavaScript
- 11. jQuery Audio:如何允許重疊聲音?
- 12. Spinner中重疊兩個聲音
- 13. 在iOS中播放重疊聲音
- 14. 播放用戶單擊單選按鈕時的聲音! FLASH AS3
- 15. Flash AS3通過removeChild去除movieclip後播放的聲音
- 16. 觸發mc時觸發聲音效果! FLASH AS3
- 17. 試着抓住聲音元素到Flash CS5-as3
- 18. 加載聲音在AS3
- 19. 聲音完全不燒(AS3)
- 20. 預加載聲音AS3
- 21. 用於AS3項目的聲音庫
- 22. AS3在錄音開始點擊聲音
- 23. AS3 SoundChannel /聲音HZ限制進口
- 24. 如何從AS3庫中播放聲音?
- 25. Flash CS5沒有聲音?
- 26. iOS:如何避免在PickerViewController中重疊聲音/音樂
- 27. Android:連續播放多個音頻文件時聲音重疊
- 28. Flash As3靜音按鈕問題
- 29. 音頻沒有在Flash AS3中播放
- 30. 克服Flash Player聲音通道或聲音限制
嘿男人謝謝你的回答。我真的不知道你的意思,所以我們說只有一個按鈕。你能告訴我該做什麼嗎?每當我點擊按鈕聲音重新開始但沒有重疊時,我在哪裏放這個代碼。 – AdamXpelled
好的。我會以更詳細的方式重寫它。 – leetwinski
我跟着步驟,但無濟於事。按鈕現在被稱爲「myButton」,並且聲音的類(名稱爲「goodmorning」)被稱爲「MySound」,因此我可以粘貼代碼而不做任何更改,但不起作用。每次我點擊一個新的聲音來。告訴我,在AS2中更容易嗎?也許我可以重新開始。我感謝你的幫助兄弟。 – AdamXpelled