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

executar ação mouse depois 2 segundos (rollover)


plizot

Pergunta

Tenho um menu no rodapé da página que fica escondido e sobe quando o mouse passa sobre ele, porém eu preciso que ele suba somente se o cursor ficar 2 segundos sobre o menu, para que com qualquer "passadinha" de mouse o menu não fique subindo e descendo.

Estava usando esse código:

on (rollOver) {
a = setInterval(b, 2000);
function b() {
gotoAndPlay(2);
clearInterval(a);
}
}

Porém o que acontece é que o on rollOver vai executar esse código toda vez que passar o mouse em cima do menu, ou seja se eu passo uma vez só, tranquilo, mas se eu pegar o mouse e ficar passando o menu vai ficar subindo várias vezes seguidas...

Acredito que o que é necessário para o funcionamento é que o rollover seja ativado depois dos 2 segundos, para que então o menu suba, e não o menu subir dois segundos depois do rollover que é o que está acontecendo... Não sei como fazer isso, se alguém puder me ajudar, fico grato!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá plizot ^_^

Sua dúvida é bastante simples, porém mais facilmente tratada no AS 3.0

Mas como seu caso deve ser AS 2 bolei 1 pequeno exemplo :)

Vamos ao flash ;)

Declarei apenas 3 variáveis, nosso botao, o tempo que vai demorar para o botao abrir e nosso Timeout;

var botao:MovieClip = _root.mybutton; //botao utilizado no exemplo
var TmpAbertura:Number = 2000; //Milissegundos
var meuTimeout; //timeout declarado :)

botao.onRollOver = function(){
    meuTimeout = setTimeout(abreMenu,TmpAbertura);
    }
    
    
botao.onRollOut = function(){
    clearInterval(meuTimeout);
    }

function abreMenu(){
        trace("Tcharam !");
    }

De resto imagino que o código se explique :)

Agora ele começa a função novamente toda vez que você tira e coloca o mouse, assim você n tem que esperar os segundos acabarem :D

Bom espero tê-lo ajudado

Boa sorte ^_^

Abraços

Pooh

Editado por Pooh
Link para o comentário
Compartilhar em outros sites

  • 0
Olá plizot ^_^

Sua dúvida é bastante simples, porém mais facilmente tratada no AS 3.0

Mas como seu caso deve ser AS 2 bolei 1 pequeno exemplo :)

Vamos ao flash ;)

Declarei apenas 3 variáveis, nosso botao, o tempo que vai demorar para o botao abrir e nosso Timeout;

var botao:MovieClip = _root.mybutton; //botao utilizado no exemplo
var TmpAbertura:Number = 2000; //Milissegundos
var meuTimeout; //timeout declarado :)

botao.onRollOver = function(){
    meuTimeout = setTimeout(abreMenu,TmpAbertura);
    }
    
    
botao.onRollOut = function(){
    clearInterval(meuTimeout);
    }

function abreMenu(){
        trace("Tcharam !");
    }

De resto imagino que o código se explique :)

Agora ele começa a função novamente toda vez que você tira e coloca o mouse, assim você n tem que esperar os segundos acabarem :D

Bom espero tê-lo ajudado

Boa sorte ^_^

Abraços

Pooh

Dae Pooh... vlw mesmo, funcionou direitinho!

Muito clara e objetiva sua explicação!

Obirgado mesmo!

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...