使用ActionScript 3可以淡入淡出

时间:2010-10-06 13:11:59

标签: flash actionscript-3 tweenlite

我正试图在Flash(CS5)项目中的音乐中淡入/淡出。我将声音导入库,为“Export for ActionScript”设置了一个类名,我试图使用TweenLite / TweenMax淡化,如下所示:

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

但它不起作用。我试图在TweenLite上导入卷插件,但仍然没有。我完全没有错误。

我做错了吗?

另外,有没有好的(完整的)音乐AS3库?

谢谢。 :)

3 个答案:

答案 0 :(得分: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 :(得分:5)

PatrickS对于你应该补间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});

对于它的价值,您可能还想查看具有MP3Loader类的LoaderMax,这样可以更轻松地处理外部声音。它有自己的“音量”属性,你也可以补间。 http://www.greensock.com/loadermax/

答案 2 :(得分: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/