我在Flash中創建了幾個按鈕。我試圖做到這一點,如果你點擊一個按鈕,音頻開始播放該按鈕。如果您單擊另一個按鈕,則活動音頻會停止,並且您最後單擊的按鈕的新音頻開始播放。Actionscript在不同按鈕上播放/暫停音頻
請幫忙嗎?
我在Flash中創建了幾個按鈕。我試圖做到這一點,如果你點擊一個按鈕,音頻開始播放該按鈕。如果您單擊另一個按鈕,則活動音頻會停止,並且您最後單擊的按鈕的新音頻開始播放。Actionscript在不同按鈕上播放/暫停音頻
請幫忙嗎?
你所描述的實際上很容易做到。
首先,我建議將音頻導入到您的Flash項目中。或者,有一種方法可以直接從外部文件播放它。這超出了我的答案範圍,所以如果你需要幫助,你應該發佈一個專門涉及它的問題。
假設您已經將音頻文件導入到Flash項目的庫中,請爲其創建一個as3實例。 (右鍵單擊庫中的文件,單擊屬性 - > ActionScript [選項卡] - > [檢查]導出爲動作腳本& [輸入名稱類]
現在,在代碼中創建聲音的定義。 (假設你的兩個聲音是在上一步中的類字段名爲「mySound1」和「mySound2」。)
var mySound1:Sound = new mySound1();
var mySound2:Sound = new mySound2();
現在,定義聲道。
var mySoundChannel:SoundChannel = new SoundChannel();
有兩種替代方法可以阻止一種聲音並播放另一種聲音。首先是創建一個每次都能執行的函數。第二種方法是創建兩個公式,一個用於「play」,一個用於「stop」。您需要決定哪種方法最適合您。我將使用雙功能的方法如下:
function stopSound():void
{
//This stops all sound in the sound channel.
//If there is nothing playing, nothing happens.
mySoundChannel.stop();
}
//In this function, we create an argument that allows us to tell the function
//what sound to we want it to play.
function playSound(soundname:String):void
{
mySoundChannel = this[soundname].play(0, 0);
}
[注意,你可以調整播放()屬性來滿足您的需求,做這樣的事情開始在歌曲的中間,或無休止的循環下去吧。 0,0從頭開始,並且不循環。請參閱documentation。]
現在,您將按鈕的事件偵聽器連接起來。 (如果您需要事件偵聽器的幫助,閱讀documentation)
myButton1.addEventListener(Mouse.CLICK, btn1Click);
myButton2.addEventListener(Mouse.CLICK, btn2Click);
function btn1Click(evt:Event):void
{
stopSound();
playSound(mySound1);
}
function btn2Click(evt:Event):void
{
stopSound();
playSound(mySound2);
}
這應該是足夠的信息,讓你開始。在我的遊戲核心中,我實際上有一個用於處理聲音回放的自定義類,使我能夠重複聲音,更改音量,並保持聲音不會相互衝突。我說要強調你可以在聲音課上做很多事情。做一些挖掘documentation的想法和幫助。
你也可以考慮在playSound函數中放置一個try-catch語句,因爲如果你傳遞一個不存在的聲音的名字,它會拋出一個引用錯誤。
非常感謝你的幫助,但這聽起來很瘋狂,因爲即時通訊使用閃光燈,有點混淆,因爲如何做到上述步驟,聽起來很直截了當,是否有可能我可以打電話給我你或teamviewer進入我的電腦,並告訴我如何做一個按鈕?請告知或者直接給我一步一步地點擊什麼 –
不幸的是,直到今天晚些時候我纔會回來。然而,在這種情況下,我會非常樂於提供幫助(因爲StackOverflow不是教Flash基礎的最佳場所)。通過我的博客聯繫表單(www.indeliblebluepen.com)給我留言,我會看看我能否給你更詳細的演練和一些資源。大約一年前我曾穿着鞋子,所以我可以說。 – CodeMouse92
非常感謝你 –