2010-10-06 9 views
9

Sto cercando di creare una dissolvenza in entrata/uscita in una musica in un progetto Flash (CS5). Ho importato il suono alla libreria, impostare un nome di classe per "Esporta per ActionScript", e stavo cercando di svanire con TweenLite/TweenMax, in questo modo:Suoni dissolvenza in entrata/uscita con ActionScript 3

var sound = new MySound(); 
sT = new SoundTransform(0.1); 
sound.play(0,99999, c_sndEnvironment); 
TweenLite.to(sound, 1, {volume: 1.0}); 

ma semplicemente non funziona. Ho provato a importare il plug-in del volume su TweenLite e ancora niente. Non ho avuto alcun errore però.

Sto facendo qualcosa di sbagliato?

Inoltre, esiste una buona libreria AS3 completa (completa) per la musica?

Grazie. :)

risposta

13

Io uso TweenMax per questo, è abbastanza semplice

 
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/

+1

Wow! Grazie. Perché funziona con TweenMax e non con TweenLite? hehe :) – CrociDB

+0

perché si applica l'interpolazione al suono, non al soundChannel;) – PatrickS

+1

Non sapevo che GreenSock potesse farlo. Grazie. –

5

Patricks è corretto circa il fatto che si dovrebbe interpolare il volume del SoundChannel, non il suono stesso. TweenMax attiva automaticamente la VolumePlugin (insieme a molti altri), ma è possibile farlo manualmente per TweenLite come:

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

Per quello che vale, si potrebbe anche voler controllare LoaderMax che ha una classe MP3Loader che rende il lavoro con suoni esterni più facili. Ha una sua proprietà "volume" che puoi anche interpellare. http://www.greensock.com/loadermax/

1

scusate, ho una specie di strano comportamento da queste righe di codice. Il mio suono svanisce, e yoyos indietro. dopo che il soundchannel ha raggiunto lo stesso volume di prima, onComplete viene eseguito normalmente. Qualche idea?

themeChannel = sndTheme.play(0, 99999); TweenLite.from(themeChannel, 2, {volume:0,onComplete:stopTheme});

// edit: ho ottenuto che funziona con l'interpolazione di un oggetto 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; 
     } 

grazie a: http://www.zedia.net/2008/fading-out-volume-using-tweenlite/

Problemi correlati