Ir para conteúdo
Fórum Script Brasil
  • 0

Som Entre Cenas


leidiane

Pergunta

Pessoal

Estou fazendo uma animação em flash. A animação possui 7 cenas.

Na 2ª cena entra uma musica, que deveria rodar ate a ultima cena, seguida, como uma trilha sonora. Mas não estou conseguindo fazer. Vejam como estou fazendo:

Inseri um novo simbolo como movie clip, coloquei a musica nesse movie clipe.

Voltei para a Cena 02

Criei uma layer e inseri o movie clip nesse primeiro quadro.

beleza, funciona, a musica toca ate o final da cena 02. mas quando passa para a cena 03 ela pára.

Inserir uma nova layer com o movie clip na cena 03 não funciona porque a musica volta pro inicio e ela tinha que continuar...

Não tem jeito de fazer isso não?

alguém me da uma luz!?

ps.: Tenham paciencia porque estou aprendendo ainda :P rsss

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

então..

tentei não funcionou

acontece o mesmo problema, quando muda de cena a musica pára

eu coloco a musica no primeiro quadro, mas tenho que esticar os frames ate o fim da cena, mas aí vem o problema, quando muda de cena a layer não esta la mais e consequentemente a musica não roda....

Link para o comentário
Compartilhar em outros sites

  • 0

Daeee Galera !!! Vou te passar algo muito interessa para resolver seu problema, trata-se da classe Sound. Com a classe Sound podemos adicionar um som no nosso filme Flash e controlá-lo. Neste tutorial vou mostrar-lhes como funciona alguns métodos da classe Sound e depois criaremos um simples player de MP3. Então vamos conhecer os métodos dos quais falaremos a respeito :

METODOS

Sound.attachSound(seu_som); - Anexa o som especificado nos parênteses. O som deve estar na biblioteca e com um linkage.

Sound.getBytesLoaded(); - Retorna o número de bytes carregados.

Sound.getBytesTotal(); - Retorna o número de bytes no total.

Sound.setPan(valor); - Define a distribuição direita/esquerda do som. Os valores vão de 100 a -100 onde 100 é usado para que o som saia na direita e -100 para que o som saia na esquerda, use 0 para que o som fique distribuído igualmente em ambos os lados.

Sound.getPan(); - Retorna o nível de pan definido na última chamada setPan.

Sound.setVolume(valor); - Define o nível de volume do som que vai de 0 a 100.

Sound.getVolume(); - Retorna o nível de volume do som.

Sound.loadSound(url, streaming); - Url é o local onde se encontra o som . mp3 a ser carregado. Streaming é um valor booleano (true/false), caso seja true o som será tocado enquanto vai sendo carregado, o Flash o armazena em buffer, se for false o Flash carrega todo o som e só depois o reproduz.

Sound.start(deslocamento em segundos, loops); - Deslocamento em segundos permite reproduzir um som de um ponto específico. Ex.: Se temos um som de 1:00 e queremos iniciá-lo a partir dos 30 segundos basta escrevermos Sound.start(30,loops);

Loops é o número de vezes que o som deve ser reproduzido consecutivamente.

Ex.: Sound.start(30,9999);

Ambos os parâmetros são opcionais.

Vale lembrar que no caso do som estar sendo carregado por streaming os loops não funcionam como deveriam, mas isso é algo fácil de se resolver e nós veremos mais a frente.

Sound.stop(); - Para o som especificado ou todos os sons que estiverem sendo reproduzidos no momento.

PROPRIEDADES

Sound.duration(); - Somente leitura. Retorna a duração de um som em milisegundos.

Sound.position(); - Somente leitura. Retorna a posição do som em milisegundos.

EVENTOS

Sound.onSoundComplete - Evento chamado automaticamente quando a reprodução do som é concluída.

Sound.onLoad - Evento chamado automaticamente quando o som é carregado.

Gostaria de lembrar que não mencionei todos os métodos, propriedades e eventos da classe Sound. Os demais deixarei para uma próxima oportunidade.

Agora que conhecemos a classe Sound podemos trabalhar um pouco com seus métodos.

MONTANDO SEU MP3 PLAYER

Crie um documento de flash novo;

No primeiro Frame, abra o painel de ações e escreva :

Caso queira carregar um som que esteja fora de seu documento flash, use esses comandos :

//Criando o objeto som
som = new Sound();
//Carregando o som
som.loadSound("arquivo.mp3", false);/*aqui carregamos o som arquivo .mp3 que está na mesma pasta que o nosso filme. Como você deve ter percebido o segundo parâmetro está false, ou seja, não estamos usando o streaming.*/
som.stop();/*aqui definimos que o som deve ficar parado, mas se você deseja que ele se inicialize sozinho, basta alterar esta parte por som.start(0,1);*/ 
Caso o som esteja na biblioteca, use estas funções :
//Criando o objeto som
som = new Sound();
//Carregando o som
Sound.attachSound("arquivo.mp3");/*aqui carregamos o som arquivo .mp3 que está na biblioteca do arquivo flash. Não se esquesa de fazer o linkage do som.*/
som.stop();/*aqui definimos que o som deve ficar parado, mas se você deseja que ele se inicialize sozinho, basta alterar esta parte por som.start(0,1);*/ 
Se você rodar o seu filme Flash verá que o som será tocado, mas ainda não podemos comandá-lo. Bom agora crie 3 botões (Play, Stop e Pause). Play - vai iniciar o nosso som quando clicado. Stop - vai parar o nosso som quando clicado. Pause - vai pausar o nosso som quando clicado. Agora vamos criar as ações nos botões, selecione o botão Pause, abra o painel de ações e coloque o seguinte:
on(release){//Quando realizado
som.pausa = som.position/1000;/*O som.pausa pega a posição atual do som. Dividimos por 1000 pois a posição está em milisegundos mas precisamos dela em segundos. */
som.stop();//Paramos a reprodução.
}
Você pode não estar entendendo, mas garanto que agora, quando fizermos o botão Play irá entender perfeitamente a lógica da coisa. Selecione o botão Play e no painel de ações coloque o seguinte:
on (release) {//Quando realizado 
if (som.pausa != null) {/* Damos uma condição: Se som.pausa for diferente (!) de nulo (0)*/
som.start(som.pausa, 0);/*Veja que o parâmetro Deslocamento em segundos se encontra som.pausa, ou seja, o ponto atual da reprodução do som. Isso faz com que o som seja continuado a partir do ponto de onde demos Pausa.*/ 
} else {//Caso o contrário 
som.start(0, 1);//Inicia o som com 0 de deslocamento e 1 loop. 
}
}Feito isso vamos ao botão Stop, portanto selecione-o e abra o painel de ações:on (release) {//Quando realizado 
som.stop();//Paramos a reprodução do som 
som.pausa = 0;/*Definimos o valor de som.pausa como 0. O motivo é bem simples, se não fizermos isso, quando clicarmos no botão Pause, o botão Stop perde sua funcionalidade pois ele vai pausar a música e não parar.*/ 
}
Bom, agora podemos controlar o som de certa forma. Mas seria bom se pudéssemos controlar o volume e o balanço, e quem sabe até mostrarmos o transcorrer da música. Mãos à obra. Agora em uma nova camada vamos criar dois campos de texto dinâmicos. O primeiro terá instância "vol_t" (sem aspas) e será o responsável em mostrar o nível de volume para nós. Ao lado do campo "vol_t" crie mais dois botões "+" e "-" (sem aspas). Faço o mesmo para o balanço mas coloque a instância do campo de "bal_t" (sem aspas). Agora vá novamente na primeira frame onde no começo colocamos as ações iniciais e adicione o seguinte:
//Criamos as variáveis com os valores de volume e balanço
var vol = 100;//O valor inicial do volume será 100, ou seja, o máximo.
var bal = 0;//O valor inicial do balanço será 0, ou seja, o som será distribuído em
//ambas as caixas de som. 
_root.onEnterFrame = function() {//Usamos o evento EnterFrame para que os 
//valores sempre se atualizem 
som.setVolume(vol);//Definimos o volume do som, o valor do volume está na 
//variável vol.
vol_t.text = vol;//Aqui mostramos o valor de vol no campo de texto vol_t 
som.setPan(bal);//Definimos o balanço do som, o valor do balanço está na 
// variável bal. 
bal_t.text = bal;//Aqui mostramos o valor de bal no campo de texto bal_t 
};
Agora só está faltando a nossa barra que indicará o transcorrer da música. Para isso crie em uma nova camada uma barra de tamanho x = 100. Transforme-a em um MC e a instâncie de "duracao" (sem aspas). Agora para que possamos redimensionar a barra sem que mudemos o seu valor (x = 100) selecione o MC e aperte F8 para criarmos mais um objeto do tipo MC com nome e instância de "barra_d" (sem aspas). Agora, na primeira frame, vamos inserir mais um código. Logo abaixo da linha bal_t.text = bal; coloque:
barra_d.duracao._xscale = som.position/som.duration*100;/* A escala de x da barra vai conforme o tempo que a música toca. Usamos o som.position dividido pelo som.duration para definir o tempo que se transcorreu a música.*/
O código completo fica assim:
//Criando o objeto som
som = new Sound();
//Carregando o som
som.loadSound("arquivo.mp3", false)/*aqui carregamos o som arquivo.mp3 que está na mesma pasta que o nosso filme. Como você deve ter percebido o segundo parâmetro está false, ou seja, não estamos usando o streaming.*/
som.stop();/*aqui definimos que o som deve ficar parado, mas se você deseja que ele se inicialize sozinho, basta alterar esta parte por som.start(0,1);*/ 

//Criamos as variáveis com os valores de volume e balanço
var vol = 100;//O valor inicial do volume será 100, ou seja, o máximo.
var bal = 0;//O valor inicial do balanço será 0, ou seja, o som será distribuído em
//ambas as caixas de som. 
_root.onEnterFrame = function() {//Usamos o evento EnterFrame para que os 
//valores sempre se atualizem 
som.setVolume(vol);//Definimos o volume do som, o valor do volume está na 
//variável vol.
vol_t.text = vol;//Aqui mostramos o valor de vol no campo de texto vol_t 
som.setPan(bal);//Definimos o balanço do som, o valor do balanço está na 
// variável bal. 
bal_t.text = bal;//Aqui mostramos o valor de bal no campo de texto bal_t 
barra_d.duracao._xscale = som.position/som.duration*100;/* A escala de x da barra vai conforme o tempo que a música toca. Usamos o som.position dividido pelo som.duration para definir o tempo que se transcorreu a música.*/
};
Como você viu, os valores de loop que definimos para som.start foram 1. Isso que dizer que a música se repetirá somente 1 vez. Se desejar que ela toque sempre, defina o valor como 9999, é o máximo permitido. Caso esteja carregando a música por streaming, para que ela se repita teremos de usar o evento som.onSoundComplete. O código com o streaming ficaria assim:
//Criando o objeto som
som = new Sound();
//Carregando o som
som.loadSound("arquivo.mp3", true)/*aqui carregamos o som arquivo.mp3 que está na mesma pasta que o nosso filme. Agora estamos usando o streaming.*/
som.stop();/*aqui definimos que o som deve ficar parado, mas se você deseja que ele se inicialize sozinho, basta alterar esta parte por som.start(0,1);*/ 

//Criamos as variáveis com os valores de volume e balanço
var vol = 100;//O valor inicial do volume será 100, ou seja, o máximo.
var bal = 0;//O valor inicial do balanço será 0, ou seja, o som será distribuído em
//ambas as caixas de som. 
_root.onEnterFrame = function() {//Usamos o evento EnterFrame para que os 
//valores sempre se atualizem 
som.setVolume(vol);//Definimos o volume do som, o valor do volume está na 
//variável vol.
vol_t.text = vol;//Aqui mostramos o valor de vol no campo de texto vol_t 
som.setPan(bal);//Definimos o balanço do som, o valor do balanço está na 
// variável bal. 
bal_t.text = bal;//Aqui mostramos o valor de bal no campo de texto bal_t 
barra_d.duracao._xscale = som.position/som.duration*100;/* A escala de x da barra vai conforme o tempo que a música toca. Usamos o som.position dividido pelo som.duration para definir o tempo que se transcorreu a música.*/
som.onSoundComplete = function(){/*Usamos o evento onSoundComplete para que quando o som chegue ao fim, se execute a função que fará a música tocar novamente, desta forma temos um loop infinito.*/
this.start(0,1);
}
};

Bom, é isso. Espero que tenham aproveitado e aprendido bastante com esta pequena explicação sobre a classe Sound. Agora meus amigos, basta vocês usarem sua criatividade.

Qualquer duvida me mandem uma MP !!! B)

(Tutorial baseado em um tutorial do Flash Masters)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...