Звук нарастает / затухает с помощью ActionScript 3

Я пытаюсь сделать плавное появление / исчезновение музыки в проекте Flash (CS5). Я импортировал звук в библиотеку, установил имя класса для «Экспорт для 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 для музыки?

Спасибо. :)


person CrociDB    schedule 06.10.2010    source источник


Ответы (3)


Я использую для этого 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/

person PatrickS    schedule 06.10.2010
comment
Вау! Спасибо. Почему это работает с TweenMax, а не с TweenLite? хе-хе :) - person CrociDB; 06.10.2010
comment
потому что вы применяете анимацию движения к звуку, а не к soundChannel;) - person PatrickS; 06.10.2010
comment
Я не знал, что GreenSock может это сделать. Спасибо. - person HasanG; 08.09.2012

PatrickS прав в том, что вы должны регулировать громкость SoundChannel, а не самого звука. 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, который упрощает работу с внешними звуками. У него есть собственное свойство «volume», которое вы также можете изменять. http://www.greensock.com/loadermax/

person Jack    schedule 01.12.2011

извините, эти строки кода ведут себя странно. Мой звук затихает, и йо-йо возвращается. после того, как звуковой канал имеет ту же громкость, что и раньше, 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/

person Manuel Graf    schedule 19.02.2013