好的,我是一個總閃光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. as3中重疊的聲音
- 2. 的Flash CS6 AS3,重置聲音聲道
- 3. 重疊的聲音
- 4. Flash AS3 - OGG聲音延遲(Adobe Alchemy庫)
- 5. Flash AS3定義聲音結束時間
- 6. 鈦:聲音互相重疊
- 7. 重疊的聲音在Javascript
- 8. FMOD播放重疊聲音
- 9. 重疊的聲音和StandingWave3
- 10. 運行時間的聲音與flash上的actionscript 3重疊9
- 11. 重疊的聲音的ActionScript 3/AIR
- 12. 音樂重疊在Flash ActionScript 3
- 13. as3聲音類卸載聲音
- 14. Flash聲音故障
- 15. Spinner中重疊兩個聲音
- 16. jQuery Audio:如何允許重疊聲音?
- 17. 在iOS中播放重疊聲音
- 18. 重疊的聲音我的JavaScript
- 19. 播放用戶單擊單選按鈕時的聲音! FLASH AS3
- 20. FLASH AS3 SOUND_COMPLETE在聲音開始時觸發
- 21. 觸發mc時觸發聲音效果! FLASH AS3
- 22. Flash AS3在特定幀上使聲音停止
- 23. 無縫地將聲音順序排列成ByteArray - flash,as3
- 24. Flash AS3通過removeChild去除movieclip後播放的聲音
- 25. 試着抓住聲音元素到Flash CS5-as3
- 26. 使用AS3或Flash Builder錄製聲音的屏幕
- 27. 加載聲音文件as3
- 28. AS3型未發現:聲音
- 29. AS3中的循環聲音
- 30. 停止AS3中的聲音
嘿男人謝謝你的回答。我真的不知道你的意思,所以我們說只有一個按鈕。你能告訴我該做什麼嗎?每當我點擊按鈕聲音重新開始但沒有重疊時,我在哪裏放這個代碼。 – AdamXpelled
好的。我會以更詳細的方式重寫它。 – leetwinski
我跟着步驟,但無濟於事。按鈕現在被稱爲「myButton」,並且聲音的類(名稱爲「goodmorning」)被稱爲「MySound」,因此我可以粘貼代碼而不做任何更改,但不起作用。每次我點擊一個新的聲音來。告訴我,在AS2中更容易嗎?也許我可以重新開始。我感謝你的幫助兄弟。 – AdamXpelled