Esta
semana falaremos de sons. Vamos construir um MP3 Player que vai carregar
um *.MP3 à partir do nome do arquivos que está na mesma pasta... Isso
mesmo! Basta digitar o nome da música na caixa de texto e ouvir o desejado.
Digite "mp3_player.mp3" e clique no botão vermelho
para ver o exemplo funcionar.
Um
sistema onde a variável da caixa de entrada será transformada no arquivo
*.MP3 a ser carregado e tocado.
Mãos
à obra:
Crie
um filme do tamanho que quiser.
Este
filme deverá possuir uma cena e 4 camadas:
- acoes
- objetos
de Som
- caixa
de texto
- botoes
ações:
No
primeiro Keyframe, insira as seguintes linhas:
this.onEnterFrame
= function () {
if (parado!=true) {
duracao=entradaSom.duration/1000;
posicao=entradaSom.position/1000;
}
musicaCarregada=entrada;
//
//Reverso
if (REV==1 && posicaoSom>0) {
_root.entradaSom.stop();
posicaoSom=posicaoSom-.5;
_root.entradaSom.start(posicaoSom,0);
}
revBotao.onPress = function () {
REV=1;
posicaoSom=_root.entradaSom.position/1000;
//
}
revBotao.onRelease = function () {
REV=0
}
//Avanço
if (FF==1 && entradaSom.position<entradaSom.duration) {
_root.entradaSom.stop();
posicaoSom=posicaoSom+.5;
_root.entradaSom.start(posicaoSom,0);
}
FFBotao.onPress = function () {
FF=1;
posicaoSom=_root.entradaSom.position/1000;
}
FFBotao.onRelease = function () {
FF=0
}
} |
objetos
de Som:
Um
Keyframe, insira as seguintes linhas:
minhaMusica
= new Sound(minhaMusicaMc);
minhaMusica.attachSound("minhaMusica01");
minhaMusicaVolume=100;
minhaMusica.setVolume(minhaMusicaVolume); |
caixa
de texto:
Insira
três caixas de texto. Uma de entrada, instanciada de "entrada"
sem aspas; e duas dinâmicas instanciadas de "duracao" e "posicao"
respectivamente e sem áspas.
E,
por fim.
botoes:
Nesta
camada, criaremos 7 botões, onde cinco deles são característicos de um
player (retroceder, tocar, avançar, pausar e parar) e os dois restantes
comuns:
Instancie
os botões retroceder, tocar e avançar de "RevBotao",
"playBotao" e "FFBotao", respectivamente, onde playBotao
deverá incluir o código:
on
(press) {
if (playing!=true) {
playing=true;
pausado=false;
parado=false;
_root.entradaSom.start(myMusicPosition,0)
}
} |
Para
os botões pausar e parar, inserir:
parar:
on
(press) {
if (playing==true) {
playing=false;
pausado=false;
parado=true;
_root.entradaSom.stop();
posicaoSom=0;
posicao=0;
}
} |
pausar:
on
(press) {
if (playing==true) {
playing=false;
pausado=true;
parado=false;
myMusicPosition=_root.entradaSom.position/1000;
_root.entradaSom.stop();
}
} |
Ainda
faltam dois botões, certo? Exatamente.
Em
um destes botões, o qual terá a função de carregar o escrito na caixa
de texto dinâmica instanciada de "entrada" - sem áspas -, coloque
o seguinte código:
on(press)
{
if (entrada!=nul && playing!=true) {
playing=true;
pausado=false;
parado=false;
entradaSom = new Sound(entradaSomMc);
entradaSomVolume=100;
entradaSom.setVolume(entradaSomVolume);
entradaSom.loadSound(entrada);
entradaSom.start(myPausePosition,0)
}
entradaSom.onSoundComplete=function() {
playing=false;
pausado=false;
parado=true;
entradaSomPosition=0;
posicao=0;
}
} |
E
finalmente, no último botão que terá a função de apagar o escrito dentro
da caixa de entrada, insira o seguinte script:
Salve
seu arquivo e exporte-o. Lembre-se que os arquivos *.mp3 devem estar no
mesmo diretório que o seu *.swf final.
O
interessante é notar o que acontece nas caixas de textos dinâmicas -
posicao e duracao - que mostram o tempo total da música e a posição
atual.
Prestem
bem atenção no código, pois à partir daí temos inúmeras possibilidades
na criação de players interessantes.
|