Flash AS2 13: Som no Flash

1. Som no Flash: som ligado a um evento

Existem dois cenários mais comuns de uso do som no Flash. Vamos agora estudar o primeiro deles, que é o de fazer com que uma interação com um objeto dispare um som. Os casos mais comuns são um barulhinho ce clique quando se pressiona um botão, em som de estilhaço dentro de um jogo. Geralmente nesse cenário os sons são curtos e podem ser carregados junto com a própria animação, isto é, ficam dentro do SWF, pois não comprometem o desempenho.

Digamos que, por exemplo, eu queira que um som dispare sempre que eu passe com o mouse sobre m botão.



Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player


Para isso não é preciso nenhuma linha de ActionScript. Basta importar o arquivo de som (no caso, um mp3) para o Flash e inseri-lo no frame over do botão.


 

curso-as2-som-no-botao


 

Sem segredo, não tem como errar.

2. Objeto sound: trilha sonora em Flash

Já se o negócio é fazer um trilha sonora carregar, os problemas que se colocam são outros:

  1. como fazer para carregar um arquivo grande dentro de uma animação? Tenho que usar um pre-loader?
  2. como faço se quero mudar o volume da música?
  3. como faço se quero mudar a música? É possível disponibilizar várias músicas para o usuário escolher?

Tudo isso é possível… e, mais que possível, desejável. Um projeto que envolve hipermídia não está completo sem a dimensão sonora.

Bem, para ter controle total sobre como um arquivo de som é reproduzido dentro do Flash, temos que criar um objeto Sound. Depois fazemos o objeto carregar o arquivo (mp3 ou wav) externo. E, a partir daí, manipulamos o objeto Sound. Assim, no primeiro frame do arquivo Flash, coloca-se o código a seguir:

 var trilha:Sound = new Sound();
trilha.loadSound("rosa.mp3",true);

No caso, criei um objeto Sound chamado trilha e carreguei nele um arquivo chamadorosa.mp3. O argumento true serve apenas para informar o Flash que deve tratar o som como streaming, isto é, um fluxo de som.

Agora exitem várias formas de manipular este objeto. Para fazer a trilha tocar, basta desenhar um botão e colocar o seguinte código nele:

p1.onRelease=function() {    
  trilha.start();
}

Para fazer o som parar, o código é parecido:

s1.onRelease=function() {
  trilha.stop();
}

Estes são os comandos básicos.

3. Melhorias

Imagine agora que você quer incrementar a sua animação e quer fazer com que o usuário tenha mais controle sobre o som que é tocado.

Vamos fazer com que ele possa escolher a música que está tocando e controlar o volume.

Para escolher qual mp3 será tocado basta criar um botão para associa-lo ao objeto Sound. Por exemplo, crie um botão para carregar a música summertime.mp3

summertime.onRelease=function() {
  trilha.loadSound("/flash/summertime.mp3", true);
}

e outro para carergar instrumental.mp3.

instrumental.onRelease=function() {
  trilha.loadSound("/flash/instrumental.mp3", true);
}

Quando você apertar o botão de play, a música que tocará será a última escolhida.

Para controlar o volume, temos que usar dois comandos: getVolume e setVolume. O valor do volume, para o Flash, varia de 0 a 100.

  • getVolume captura o valor do volume de um certo objeto Sound.
  • setVolume atribui um valor ao objeto Sound.

Assim, um botão para aumentar o volume precisa capturar o volume atual, aumentar esse valor e atribui-lo ao objeto Sound.

O código fica assim:

vUp.onRelease=function() {
  trilha.setVolume(trilha.getVolume()+10);
}

Para abaixar o volume, o contrário:

vDown.onRelease=function() {
  trilha.setVolume(trilha.getVolume()-10);
}

Se desejar fazer um texto dinâmico (de instância chamada tVolume, por exemplo) mostrando qual o valor do volume, basta usar o código:

tVolume.text = trilha.getVolume();

Segue abaixo uma demonstração desses recursos:



Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player


4. Vídeo

Primeira parte


 

 

Segunda parte

Social media & sharing icons powered by UltimatelySocial