Jump to content


Photo

Som Em Arquivo


  • Faça o login para participar
4 replies to this topic

#1 oranos

oranos

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 20/02/2006, 01:18

Criei uma animação com uma musica de fundo. So que essa musica so e executada quando o usuario passar o mouse em cima. o problema e que quando eu tiro o mouse a musica continua. e pra piora se eu passar o mouse de novo em cima da animação a musica e executada de novo, ou seja é uma execução em cima da outra. Como faço pra quando o usuario tira o mouse a musica para ?

#2 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 20/02/2006, 23:28

Fala, Oranos....

Seguinte, cara... Eu quebrei a cabeça aqui e quase cheguei lá. Vou postar o que eu fiz aqui e você vê se consegue chegar numa solução final....

Comecei colocando um MC e instancie como som_mc... Daí meti na camada de actions os codes:

// criamos uma variável de objeto de som...
var som_sound:Sound = new Sound();
//carregamos o som... (o true/false é o streaming... para usar streaming: "true"... (estou consierando que o som foi salvo na mesma pasta do seu fla...                   
som_sound.loadSound("Malmsteen.mp3", false);
//quando o som for carregado completamente
som_sound.onLoad = function() {
//o som não executará automaticamente:
som_sound.stop();
};
// agora atualize uma função a cada entrada neste quadro:
this.onEnterFrame = function() {
// a função a ser atualizada é essa...
// o movie clip que está no palco, ao mouse rolar sobre ele...
som_mc.onRollOver = function() {
  //crie uma variável que verifica, em milisegundos, a posição do som:
  var somPosition:Number = som_sound.position;
  trace(somPosition);
  //verifique a posição do som.. se a posição dele for menor ou igual a zero, toque o som....
  if (somPosition<=0) {
  som_sound.start(0, 0);
  } else {
  // do contrário, pare o som e limpe o valor da variável de checagem...
  som_sound.stop();
  // aqui iria a função que zeraria a var somPosition, para restabelecer a função onRollOver.... isso que eu não consegui fazer.
  }
};
};


Como você pode ver a coisa ficou assim: Se o sujeito puser o mouse sobre o MC, a música começa.. Se o cara puser novamente a música pára. Até aí ok. A minha dificuldade final é: quando dou um trace no somPosition, não há o que faça ele zerar após confirmar a opção else do if statement. Tentei de inúmeras maneiras, mas não consegui:

if (somPosition<=0) {
  som_sound.start(0, 0);
  } else {
  // do contrário, pare o som e limpe o valor da variável de checagem...
  som_sound.stop();
// zere a variável somPosition para poder habilitar novamente a função onRollOver
som_sound.position = 0
somPosition = 0
};


No caso da música, eu estava usando uma do Malmsteen que renomeei para "Malmsteen.mp3".

Como você pode ver, se conseguíssemos zerar a posição do somPosition após o else se confirmar, ou seja, caso a música fosse parada, tudo estaria resolvido.

Alguém com uma boa idéia?

Abraço a todos.


Pedro Paulo

#3 Hes Vital

Hes Vital

    Doutor

  • Usuários
  • 796 posts
  • Sexo:Não informado
  • Localidade:Leste - Santa Catarina
  • Interesses: * Programação - Sempre é bom criar algo.<br> - PHP<br> - Action Script<br> * Jogos - Nunca se é velho demais pra jogar.<br> - RPG<br> - Ação<br> - Outros

Posted 21/02/2006, 15:22

Que tal stopAllSounds(); no onRollOut?
Quantos programadores são necessários para trocar uma lâmpada?
Só um, mas a casa cai!

Posted Image

#4 oranos

oranos

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2006, 17:08

Resolvi o problema.

Dei dois cliques no botao, entrei no modo de edição. Na posição em que o mouse estará em cima do banner coloquei o som. Nas outras opções eu utilizei a opção parar na barra de propriedades. Acho que ela ta disponível em sincrozinar com evento. Dai foi so copia o quadro em todos os outros estados.


Valeu.

#5 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 21/02/2006, 17:09

Pois é, Hes Vital.. O problema é que o difícil não é parar o som. E sim fazê-lo recomeçar após ter parado uma vez. Entendeu?

Está assim:

Passo1) Iniciar a música ao primeiro onRollOver >> OK.

Passo2) Parar a música ao segundo onRollOver >> OK.

Passo3) REiniciar a música ao terceiro onRollOver e habilitando novamente o Passo2>> PENDENTE.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq