2010-10-06 126 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/