9

我正在尝试在 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 音乐库?

谢谢你。:)

4

3 回答 3

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/

于 2010-10-06T13:16:46.860 回答
5

PatrickS 是正确的,你应该补间 SoundChannel 的音量,而不是 Sound 本身。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/

于 2011-12-01T16:56:34.823 回答
1

抱歉,我从这些代码行中产生了一种奇怪的行为。我的声音消失了,悠悠球又回来了。soundchannel和之前一样音量后,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/

于 2013-02-19T14:27:41.043 回答