2013-03-21 85 views
0

當創建一個AS3項目,並添加音頻我通常做的就是拖我想用(例如用於遊戲菜單),當我想停止音頻I輸入禁用音頻Flash

SoundMixer.stopAll();

音頻什麼

我這樣做是因爲如果我說在這個菜單中去關於遊戲框架然後我會有音頻,但是如果我回到主框架,我原來有音樂它sorta加倍和兩個不同的計時的音樂在同一時間播放。如何在不改變幀的情況下停止播放音頻?

+0

你最好通過代碼播放音樂,這樣你就可以檢查它是否已經播放 – BadFeelingAboutThis 2013-03-21 23:51:45

回答

0

在這些情況下,通過代碼直接啓動和停止聲音更容易。首先,右鍵單擊「庫」面板中的聲音片段,然後選擇「屬性」。在ActionScript選項卡中,選中「導出爲ActionScript」,併爲其指定類名稱,例如音樂。然後,播放和停止這個夾子,你可以使用此代碼:

import flash.media.Sound; 
// create the music Sound object so that we can start playing 
var music : Sound = new Music(); 
var musicChannel : SoundChannel; 

// play the music 
// the play() method returns a SoundChannel, 
// which you can later use to stop the music 
// notice that we first check to make sure musicChannel is null 
// if it isn't null, music is already playing, so don't play it twice 
if(musicChannel != null) musicChannel = music.play(); 

// when you switch screens, stop the music 
// clear out the channel, so that we know that it is safe to start the music again 
musicChannel.stop(); 
musicChannel = null; 

另外,如果你播放音樂,並通過將其放在時間軸上的聲音,您可以通過使用幀的同步設置阻止它。在時間軸上,創建一個關鍵幀,在其中切換屏幕並希望音樂停止播放。選擇該框架,然後將要停止的聲音片段拖到該框架上。在「屬性」面板中,將「同步」選項更改爲「停止」。這將只會導致選定的聲音停止播放。

另一種方法是創建一個空的MovieClip,並在其中放置聲音。將「同步」設置更改爲「流」,然後使用空幀填充剪輯,以便播放整個剪輯。然後,如果您將此剪輯放在主菜單屏幕上,那麼它只會在主菜單中播放。只要MovieClip存在並正在播放,Stream聲音只會播放聲音。將其與普通的事件聲音進行比較,無論哪種聲音都會播放整個聲音。

後一種方法更老派和電影中心。如果您正在編程一款遊戲,那麼使用前一種方法可以更好地控制代碼中的音頻。