2010-10-06 138 views
9

我試圖在Flash(CS5)項目中使音樂淡入/淡出。我進口的聲音庫,設置「爲ActionScript導出」一個類名,我試圖用TweenLite的/ TweenMax褪色,就像這樣:聲音使用ActionScript 3淡入/淡出

var sound = new MySound(); 
sT = new SoundTransform(0.1); 
sound.play(0,99999, c_sndEnvironment); 
TweenLite.to(sound, 1, {volume: 1.0}); 

但它是行不通的。我試圖在TweenLite上導入卷插件,但仍然沒有。雖然我根本沒有任何錯誤。

我做錯了什麼?

另外,有沒有什麼好的(完整)AS3音樂庫?

謝謝。 :)

回答

13

我用TweenMax這一點,這是很簡單的

 
var someSound:Sound = new Sound(new URLRequest(「MySound.mp3″)); 
var someChannel:SoundChannel = someSound.play(0, 99999); 
TweenMax.to(someChannel, 1, {volume:0, onComplete:stopSound}); 

http://www.greensock.com/tweenmax/

+1

哇!謝謝。爲什麼這適用於TweenMax而不是TweenLite?嘿嘿:) – CrociDB 2010-10-06 13:38:26

+0

因爲你應用補間的聲音,而不是soundChannel;) – PatrickS 2010-10-06 15:23:48

+1

我不知道GreenSock可以做到這一點。謝謝。 – 2012-09-08 09:10:20

5

帕特里克是有關的事實,你應該補間的SoundChannel,而不是聲音本身的體積是正確的。 TweenMax自動激活VolumePlugin(與其他幾個人一起),但你可以做手工的TweenLite的一樣:

import com.greensock.*; 
import com.greensock.plugins.*; 
TweenPlugin.activate([VolumePlugin]); //only necessary once 

var someChannel:SoundChannel = someSound.play(0, 99999); 
TweenLite.from(someChannel, 1, {volume:0}); 

對於它的價值,你可能也想看看LoaderMax它有一個MP3Loader類,能使工作外部聲音更容易。它有自己的「音量」屬性,你可以補間。 http://www.greensock.com/loadermax/

1

對不起,我從這些代碼行類似的一種奇怪的行爲。我的聲音消失了,並且yoyos回來了。在聲道與之前的音量相同之後,onComplete被正常執行。有任何想法嗎?

themeChannel = sndTheme.play(0, 99999); TweenLite.from(themeChannel, 2, {volume:0,onComplete:stopTheme});

//編輯:我得到它的工作由漸變SoundTransform對象:

var themeTransform:SoundTransform = new SoundTransform(1); 
themeChannel = sndTheme.play(0, 99999, themeTransform); 
TweenLite.from(themeTransform, 3, {volume:0,onUpdate:updateSound,onComplete:stopTheme}); 

function updateSound():void{ 
      themeChannel.soundTransform = themeTransform; 
     } 

感謝: http://www.zedia.net/2008/fading-out-volume-using-tweenlite/