我希望在 Flash CS5 中的事件(例如按下按钮)后交叉淡入淡出两个声音文件。理想情况下,第一个声音循环直到按下按钮,此时淡出将从声音 2 同时淡入开始。我对 actionscript 3 的理解非常有限。谢谢你的帮助 :)
问问题
362 次
1 回答
0
为了达到这个效果,你需要使用两个 soundChannel。由于您使用 cs5,我假设您正在循环您的第一个声音文件(如果不是,您应该这样做):
var sc1:SoundChannel = myFirstSound.play(0, 999);
现在当事件被调用(按钮被点击)时,你会想要降低第一个声音文件的音量并增加第二个声音文件的音量。为此,您可以使用 soundChannels 上的 soundTransform 属性。这将是减少音量的示例。
sc1.soundTransform = new SoundTransform(sc1.soundTransform.volume - .1, 0);
您将在 enterframe 循环中像这样降低第一个声音文件的音量。同样在这个循环中,您需要增加第二个声音文件的音量:
var sc2:SoundChannel = mySecondSound.play(0, 999);
sc2.soundTransform = new SoundTransform(0, 0);
然后在 enterframe 循环内增加第二个声音,它与上面的相同,但加法而不是减法:
sc2.soundTransform = new SoundTransform(sc2.soundTransform.volume + .1, 0);
在这种情况下,0.1 是声音衰减的速度。你可能不得不玩弄它。一旦第一个声音文件的音量达到零,您应该将其删除并结束循环。无论如何,我认为这是足够的信息来完成你的目标。祝你好运。
于 2012-07-10T23:42:45.263 回答