1

关于这个问题,我环顾了网络,并想出了以下代码来淡出我的电影剪辑上的音量:

        var myTransform = new SoundTransform();
        myTransform.volume = 1;
        loaderClip2[indexNumber].soundTransform = myTransform;
        audioTween = new TweenLite(myTransform, 2, {volume:0});

我的影片剪辑存储在loaderClip2由变量确定的索引位置的数组中indexNumber。此代码不会产生所需的淡入淡出。谁能看到这里有什么问题?

4

3 回答 3

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;
}
于 2011-08-01T06:32:57.117 回答
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 } );

设置你自己的参数

于 2011-08-01T03:36:34.623 回答
-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; 
    }

非常简单。

于 2011-08-01T20:38:30.737 回答