Затухание объема в мувиклипе - PullRequest
1 голос
/ 01 августа 2011

Я осмотрел эту проблему в сети и придумал следующий код, чтобы уменьшить объем в моем мувиклипе:

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

Мой мувиклип хранится в массиве loaderClip2в позиции индекса, определяемой переменной indexNumber.Этот код не производит желаемого замирания.Кто-нибудь может увидеть в чем здесь проблема?

Ответы [ 3 ]

3 голосов
/ 01 августа 2011
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;
}
0 голосов
/ 02 августа 2011

Хорошо, ребята, попробовав все возможное с 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; 
    }

Легко, как пирог.

0 голосов
/ 01 августа 2011

Попробуйте этот код:

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 } );

Установите свои собственные параметры

...