Em
primeiro lugar, devemos notar que você não
precisa usar objetos de som para obter sons em Flash. Você
pode importar um arquivo wav, um arquivo aiff (Aplle &
Silicon) ou um mp3 em qualquer formato que o Flash suporte
e arrastar uma cópia da biblioteca para o quadro
chave (keyframe) e bingo! Você conseguiu o som. Mas
se você quiser ligar e desligar, controlar o volume
ou dividir sons estereofônicos, mixar sons em modo
programável ou iniciar um som quando outro termina,
vai precisar de objetos de som.
Um
objeto de som é criado pela anexação
de um som (loops, sons, música de fundo, o que seja
que você queira) que seja importado para um filme
Flash e que portanto esteja na biblioteca). O som tem que
ser tornado "anexável" dando-se a ele um
nome de exportação: para fazer isso, clique
com o botão direito do mouse no som na biblioteca
e escolha Linkage. Marque Exportar este símbolo e
dê ao som um identificador (nós usamos expLoop).
Identifique a linha de tempo que conterá o som
Em seguida, você precisa identificar qual linha de
tempo irá conter o som. Se você não
o fizer, o som será anexado onde quer que seu attachSound
esteja lançado, provavelmente na linha de tempo principal.
Quaisquer outros objetos de som que você anexar serão
também anexados à mesma linha de tempo, tornando
impossível controlá-los independentemente.
Se você quiser sons controlados independentemente,
utilize uma instância separada de um movieclip em
branco como detentor para cada um deles. Para esse exemplo,
criamos um movieclip em branco, uma instância arrastada
para dentro do palco (em um frame "startMusic")
e dê a ela o nome de instância mcControl.
Para criar o objeto de som
Porque nós não queremos que o som comece a ser executado
imediatamente nesse exemplo, temos um stop() no primeiro quadro e um
botão que executa um comando gotoAndPlay("startMusic")
para o liberar. O quadro startMusic contém o movieclip
controlador, bem como dois movieclips como botões alternadores
(um para up/down e outro para start/stop). Este é o código
no clip controlador, que cria um objeto de som e inicia a execução:
onClipEvent(load)
{
sLoop = new Sound(this);
// cria um novo objeto Sound chamado sLoop
// this = a timeline corrente (movieclip mcControl)
sLoop.attachSound("expLoop");
// anexa expLoop da biblioteca para esse objeto
sLoop.start(0, 99);
// comece tocando desde o começo (0), 99 loops
}
Para
controlar o volume
O botão alternador iu/down (em um movieclip) simplesmente ajusta
o volume a 40% ou 100%, respectivamente, com o seguinte código.
on
(release) {
lUp = !lUp
if (lUp) {
_parent.mcControl.sLoop.setVolume(40);
this.gotoAndStop("nowTurnedDown");
} else {
_parent.mcControl.sLoop.setVolume(100);
this.gotoAndStop("nowTurnedUp");
}
}
lUp
(l = lógico, Up = som ajustado para cima) é
uma variável local que informa se o som apresenta-se
ajustado para up (true) ou para down (false). Se ele estiver
para cima, o abaixamos até 40% do volume com _parent.mcControl.sLoop.setVolume(40).
O _parent diz: abaixe um nível (para a linha
de tempo principal, nesse caso) então procure pela
instância mcControl que contém object
sLoop e ajuste-o para baixo! Se o som já estiver
ajustado para baixo (lUp = falso), retorne para 100%. Finalmente,
a seqüência gotoAndStop estaciona o movieclip
com o botão no estado anterior ao qual ele estava.
Ligar / Desligar o som
Ligar e desligar o som é feito com um botão alternador
similar em um movieclip com esse código:
on
(release) {
lOff = !lOff
if (lOff) {
_parent.mcControl.sLoop.stop();
this.gotoAndStop("nowTurnedOff");
} else {
_parent.mcControl.sLoop.start(0,99);
this.gotoAndStop("nowTurnedOn");
}
}
Então
é isso - após criar um novo som com o construtor
de som em um movieclip, os quatro métodos básicos
para controlá-lo:
-
attachSound(nome do Som)
- start(deslocamento,Loop)
- stop()
- setVolume(volume)
Quatro
métodos adicionais são fornecidos para controlar
o nível do som em cada alto-falante: setPan, getPan,
setTransform, e getTransform. Por exemplo, para um som panorâmico
entre os alto-falantes da esquerda até a direita,
você pode colocar uma seqüência como sLoop.setPan(sLoop.getPan()+2)
dentro de uma rotina onClipEvent(enterFrame).
Os fundamentos do uso do objeto som são
simples. Uma coisa adicional para se notar é que,
porque os sons exportados na biblioteca são forçados
a carregar antes que qualquer outra coisa possa tocar no
filme, é uma boa idéia colocar os objetos
de som em seus próprios filmes separados, que são
carregados em um nível pelo filme principal. Deste
modo, o filme principal pode rodar (uma cena pré-carregada,
pelo menos) enquanto os sons estão sendo carregados
em um nível mais alto do filme.
Nota:
Em tutoriais / intermediários / Load Movie MX e MP3
player, você encontra mais detalhes do objetoSound
para o FlashMX.
Tradução:
Sérgio Ramalho
Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados