MUZAK (45 pts)

AMAURY BENTES (123 pts)

GUILHERME G.G. (137 pts)

RICARDO TEIXEIRA (40 pts)

JONAS GALVEZ (521 pts)

EDUARDO CARREGA (150 pts)

FLASHGURU (155 pts)

EDUARDO WALMOTT (226 pts)

DEN IVANOV (260 pts)

EDUARDO PERROUD (52 pts)

ZEBEDIAH (35 pts)

LUIZ HERRERA (117 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer para que meu flash aberto com Load Movie tenha fundo transparente.

Como aplicar um efeito alpha (fade out) em um outro swf de nivel superior aberto através do loadmovie?

Preciso de um exemplo de um efeito de vibração?

Com o LocalConnection do FlashMX, posso enviar variáveis para outro SWF?

Qual seria o comando para parar uma música e o resto dos sons continuassem a tocar e outro comando para faze-la tocar novamente?

Preciso simular um motion tween via action script.

Erro no TellTarget.

Queria aprender a usar loops (While ou o For) em actioscript.

Queria fazer um mouse trail com easing, mas que o movieclip ficasse sempre embaixo do mouse.

Quero que executar uma ação dinamicamente, usando uma variável importada de um TXT.

Tem como abrir um PDF (acrobat reader) entro do Flash? Pode ser com Delphi?

Como fazer um autoRun para um executável do Flash?

Tem como executar uma função para todos os movieclips sem usar a propriedade prototype?

Como usar os métodos de desenho do Flash?
Movimento por meio de actionscript

Sistema de busca utilizando Flash + ASP .

Desenhando uma linha entre dois pontos no Flash 5.

Como fatiar um site modelo portal no Fireworks

Flash no Espaço Geográfico

Variáveis, uma visão geral.

Duplicate Movieclip.

Calendário dinâmico

Máscaras no Fireworks MX, o mistério!

Sistema de newsletter utilizando Flash + ASP

Login e senha

Integração Flash X ColdFusion.
Hidden menu

Drag circling

Drag open menu

3dv3trails

Mapa - Países com B

Lights many

Grafico de percentagens

Lightings

Efeito blur

Relógio

Loading trail

Botão vai e volta
HOME | TRUQUES E DICAS
Caso em que numa função setInterval, o clearInterval não funciona.
por Marcelo Siqueira



O que acontece no script abaixo é que o intervalo é dado normalmente. As ações são executadas, mas o clearInteval não funciona e as ações são executadas novamente depois dos 20s. Eu já pus a função intervalo no frame, já coloquei clearInterval(this); Nada funciona.


on (press, release, rollOver, dragOver) {
    intervalo = function () { _root.simbolo3.gotoAndPlay("tres");clearInterval(tempo);};
    t++;
    if (t>=2) {
        tempo = setInterval(intervalo, 20000);
    }
}


Esse é um caso interessante, mas não há nada de errado com o setInterval. são dois problemas:

O primeiro é estar misturando os eventos press, release e rollover. o código está sendo acionado várias vezes. press e release juntos acionam o código duas vezes, praticamente ao mesmo tempo.

Antes do intervalo acionado por um terminar, e o clearInterval ser acionado, o outro aciona o setInterval novamente. Se tirar um dos dois, seu código já vai parecer funcionar direito.

Também não faz sentido ter rollover junto com press ou release. o rollOver está sendo anulado pelo contador que você colocou. Inclusive, fazer rollOver duas vezes vai acionar o código sem apertar o botão. Para resolver esse primeiro problema bastaria:

on (press) { //ou então rollOver, dragOver
    intervalo = function(){
        _root.simbolo3.gotoAndPlay("tres");
        clearInterval (tempo);
    }
    tempo = setInterval(intervalo, 2000);
}

o segundo problema é que, se o botão for clicado novamente durante o intervalo, o código também vai ser acionado novamente e se for clicado várias vezes, vai acontecer o mesmo problema de antes. o clearInterval vai deixar de funcionar e o loop não vai acabar nunca. Para funcionar só uma vez você pode colocar uma flag de controle:

on (release) {
    // ou então rollOver, dragOver
    intervalo = function () { _root.simbolo3.gotoAndPlay("tres");clearInterval(tempo);running = false;};
    acionaIntervalo = function () { if (!running) {tempo = setInterval(intervalo, 2000);running = true;}};
    acionaIntervalo();
    // aciona a primeira função
}


O ideal seria deixar essas funções na timeline. você poderia acioná-las com outros botões, usando diferentes parâmetros, por exemplo:

nos botões:

on (release) {
    acionaIntervalo(simbolo, alvo, tempo);
    // seleciona o movieclip, o alvo e o
    intervalo;
}

na timeline:

function acionaIntervalo(simbolo, alvo, tempo) {
    if (!running) {
        intervalo = setInterval(mudaClip, tempo, simbolo, alvo);
        running = true;
    }
}
function mudaClip(simbolo, alvo) {
    simbolo.gotoAndPlay(alvo);
    clearInterval(intervalo);
    running = false;
}

Marcelo Siqueira


1 comentário


Comentário de Valter
| 7/12/2010 - 13:14 |


A sua duvida me ajudou. Valeu!