Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lenerafa

[Resolvido] fade in e fade out com AS3

Recommended Posts

Estou tentando abandonar o AS2 em meus projetos e gostaria que alguém me ajudasse a fazer a música da animação ter um efeito de fade in para iniciar e de fade out quando estivesse terminando.

Eu já tentei diversos códigos, mas não consigo a solução.

Sei que o código abaixo está perto, mas não sei corrigir.

 

var tmp:Timer=new Timer(50)

var sc:SoundChannel=new SoundChannel()

var som:Sound=new Sound()

som.load( new URLRequest("champ.mp3"))

var fade:Number=1

var fadein:SoundTransform=new SoundTransform(fade)

tmp.addEventListener(TimerEvent.TIMER, toca)

tmp.start()

sc=som.play(0,0,fadein)

function toca(event:TimerEvent): void{

fade-=0.01

trace(fade)

if(fade>1){

tmp.stop()

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei qual a versão do Flash você usa, mas no CS3 e CS4 há um recurso para editar o arquivo de som, efetuar cortes, e aplicar fade in e fade out independente da versão do action.

 

No CS3, painel Properties, aba Sound > Edit, no CS4 idem, ícone do lápis, abre o painel Edit Envelope.

 

Pessoalmente, prefiro usar o programa Audacity para editar arquivos de som, é gratuito e dispensa instalação. Uso em português, é simples de trabalhar e possui mais recursos (para salvar em mp3 instale a "Lame", tem dicas no baixaki e no site do desenvolvedor).

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu.

Se fosse para editar o arquivo de som, seria simples.

Eu quero controlar esse som por actions

Numa animação que tem um quadro só...

Ou poucos.

Só o suficiente para que todos os códigos façam o planejado.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta só você aplicar o valor do volume ao SoundTransform e aplicar o SoundTransform ao SoundChannel.

 

Na função para o FadeOut por exemplo, poderia ficar assim (usei os mesmos nomes de variáveis que você, embora alguns no caso n façam setido. A ideia seria a função fadeOut ser chamada a partir do Evento Timer do tmp):

 

function fadeOut(event:TimerEvent):void {
	fadein.volume -= 0.01;
	sc.soundTransform = fadein;

	if(fadein.volume <= 0){
		fadein.volume = 0;
		tmp.removeEventListener(TimerEvent.TIMER, fadeOut);
		tmp.stop();
	}
}

não coloquei para parar o SoundChannel também... se n for dar o fadeIn depois, é bom para-lo =)

 

Você pode usar uma classe como a TweenMax para fazer isso também, caso esteja usando em outras partes do código pode valer a pena =) OBS.: O Forum está transformando o sinal de menor que... é só mudar...<span class="pun"><br></span>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.