我在这个问题上环顾网络,并提出以下代码来淡出我的movieclip上的音量:
var myTransform = new SoundTransform();
myTransform.volume = 1;
loaderClip2[indexNumber].soundTransform = myTransform;
audioTween = new TweenLite(myTransform, 2, {volume:0});
我的影片剪辑存储在数组loaderClip2
中,位于由变量indexNumber
确定的索引位置。此代码不会产生所需的淡入淡出。谁能看到这里有什么问题?
答案 0 :(得分:3)
var myTransform:SoundTransform = new SoundTransform(1);
TweenLite.to(myTransform, 1, {volume:0, onUpdate:updateChannel, onUpdateParams:[indexNumber]});
function updateChannel(index:int):void {
loaderClip2[index].soundTransform = myTransform;
}
答案 1 :(得分:0)
试用此代码:
private function updateChannel() : void {
var st : SoundTransform = new SoundTransform(loaderClip2[indexNumber].soundTransform.volume, 0 );
loaderClip2[indexNumber].soundTransform = st;
}
TweenLite.to(loaderClip2[indexNumber], 4, { volume:.5, ease:Strong.easeInOut, onUpdate:updateChannel } );
设置您自己的参数
答案 2 :(得分:-1)
好吧,伙计们,在尝试使用tweenlite之后,我找到了另一个使用老式ENTER_FRAME
事件的解决方案。这是尽可能直截了当的,希望我之前想过它:
所以在上一个函数中我只是这样做:
myClip.addEventListener(Event.ENTER_FRAME, fadeAudio);
然后刷新事件函数(或其他任何函数):
var audioshift = 1;
function fadeAudio(e : Event) : void {
audioshift -= .05;
if (audioshift <= 0) {
audioshift = 0;
trace("fadeAudio complete");
e.target.removeEventListener(Event.ENTER_FRAME, fadeAudio);
}
var st : SoundTransform = new SoundTransform(audioshift, 0);
e.target.soundTransform = st;
}
很容易就是馅饼。