GUILHERME SCHEIBE (49 pts)

EDUARDO WALMOTT (226 pts)

GABRIEL SPORCH (53 pts)

ZEBEDIAH (35 pts)

AMAURY BENTES (123 pts)

RICARDO FIGUEIRA (33 pts)

LUI FERNANDO (151 pts)

DEN IVANOV (260 pts)

ALEXANDRE PORTO (1281 pts)

DAAFY (55 pts)

MARCOS JOSÉ PINTO (44 pts)

IRAPUAN MARTINEZ (45 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero fazer um movimento circular infinito sem quebras (truncados).

Rodo um vídeo usando Flash ou Director?

Como fazer um mousetrail com duplicate e alpha?

Preciso de um formulário em asp que sirva para buscar dados em um banco de dados.

Eu estou usando para toolTip um código simples usando o método createTextField.

Importei um MOV pro flash, só que quando testo, o vídeo não começa.

Tenho um botão dentro de um movieclip e quero que este movieclip desapareça quando eu clicar no botão.

O loadMovie() vai acumulando os filmes abertos na memória?

Como posso dessaturar uma foto para seus níveis de preto e branco?

Gostaria de saber pra que servem os levels?

Tamanho de banners

Função criada para código de contagem regressiva de data, para MX.

Gostaria de saber se existem plugins para flash.

Um movie clip, em uma cena, pode continuar, em outra cena, de onde parou?
Criando um verificador de campos de um formulário.

Unindo e separando traçados - Fireworks

ListBox no FlashMX.

Objeto Array

Janelas com abas.

Calendário dinâmico

Objeto array - Arrays X Objetos

Usando Define Patern para criar texturas contínuas no PhotoShop.

Janelas pop-up e semi-full no flash

Menu horizontal com descrição.

Usando XML com Fireworks MX.

A história do Flash.
Triangulos

Arrow

F5doubleclick

Shape tween animado

Mapa do Brasil e da América do Sul

Espelho

Loader Total

Cubo

Lightball

Cronometro

Planeta orbita

Galho
HOME | TUTORIAIS
Funções SetInterval e clearInterval no FlashMX.
por Jonas Galvez

O Flash MX trouxe duas novas funções muito interessantes, setInterval e clearInterval, que já são presentes no JavaScript e não deverão surpreender muito aqueles que já conhecem a linguagem. A função setInterval permite executar uma função periodicamente dentro de um intervalo de tempo definido. Esta função retorna uma identificação, que posteriormente pode ser utilizada para cancelar a execução através da função clearInterval. Segue abaixo as opções de sintaxe destes métodos.

setInterval(funcao, milissegundos);
setInterval(objeto, "metodo", milissegundos);

var id = setInterval(funcao, milissegundos);
var id = setInterval(objeto, "metodo", milissegundos);
clearInterval(id);

 
  A função setInterval pode ser chamada de duas maneiras. A primeira forma consiste em dois parâmetros, o nome da função que será executada e o intervalo de tempo em milissegundos. A segunda forma permite executar não uma simples função mas sim um método de um objeto. Para isso, é preciso passar três parâmetros para a função, sendo que o primeiro é o nome do objeto onde o método reside, o segundo é o nome do método entre aspas (o nome do método deve ser passado como uma string) e o terceiro é intervalo de tempo em milissegundos. Para sua melhor compreensão, veja o exemplo abaixo e tente entender e testar seu funcionamento.

function minuto() { trace("Um minuto se passou!"); };
setInterval(minuto, 60000);


   O exemplo de script acima é bastante óbvio: definimos uma função que será executada a cada 60 segundos. Este ainda é um uso bastante simples da função setInterval. Durante minhas pesquisas com o Flash MX, encontrei um problema que muitos já devem ter percebido. Não é possível utilizar o evento onEnterFrame de movieclips em outros objetos (em outras palavras, a classe MovieClip não tem os método addListener e removeListener). Para contornar este problema, resolvi utilizar a função setInterval com um intervalo de tempo bastante próximo ao do frame rate do filme, para que o resultado fosse o mesmo. O script ao qual me refiro é o de métodos adicionais para a classe TextField que permitem fazer a rolagem contínua de texto. Considero estes métodos apenas um experimento, considerando que seu uso não é mais necessário já que o Flash MX inclui um componente especial para rolagem de texto.

TextField.prototype.startScrollUp = function() {
this._scrollUp = function() { this.scroll--; };
this.upInterval = setInterval(this, "_scrollUp", 100);
};
TextField.prototype.startScrollDown = function() {
this._scrollDown = function() { this.scroll++; };
this.downInterval = setInterval(this, "_scrollDown", 100);
};
TextField.prototype.stopScroll = function() {
clearInterval(this.upInterval);
clearInterval(this.downInterval);
};


   O exemplo acima já pode ser considerado bem mais avançado, mas se você analisar bem, verá que não é tão complicado assim. O método startScrollUp define um método interno chamado _scrollUp, que simplesmente decrementa o valor da propriedade scroll do campo de texto. Depois, a função setInterval é utilizada para determinar que o método _scrollUp deverá ser executado a cada 100 milissegundos, e um identificador (upInterval) é definido para esta chamada da função setInterval. O mesmo processo é utilizado no método startScrollDown, só que ao invés de ser decrementada, a propriedade scroll do campo de texto é incrementada. No método stopScroll, a execução dos métodos internos _scrollDown e _scrollUp é cancelada através da função clearInterval.

   Agora você já viu a utilidade destas funções em métodos internos, a partir de um exemplo bastante simples. Agora irei comentar mais um exemplo de uso destas funções, que pode ser bastante útil. Umas das perguntas mais comuns nas listas e nos fóruns é sobre como fazer que o filme pare por um determinado número de segundos depois continue a reproduzir. Pensando nisso, resolvi criar uma classe chamada Countdown, que executa um método após uma contagem regressiva com os segundos definidos. Veja abaixo o código da classe.

_global.Countdown = function(segundos) {
this._handler = function() {
this.onFinishCountdown();
clearInterval(this._id);
};
this._id = setInterval(this, "_handler", segundos*1000);
};

   Neste script, utilizo a palavra-chave _global antes do nome da classe para torná-la acessível globalmente, ou seja, uma instância desta classe poderá ser criada em qualquer lugar do filme, assim como todas as outras classes do Flash MX. O uso do setInterval é intrigante, pois o método _handler só deverá ser chamado uma única vez, após que contagem regressiva termine. Para isso, já chamo o método clearInterval dentro da própria função, o que anula a execução. Segue abaixo um exemplo de uso da classe Countdown.

// contagem regressiva de dez segundos
var contagem = new Countdown(10);
// event handler que será executado quando
// a contagem terminar
contagem.onFinishCountdown = function() {
// código que deverá ser executado
};


   Para finalizar este artigo, irei passar um recurso da função setInterval que ainda não comentei. É possível passar parâmetros para a função (ou método) que será executada, definindo-os como parâmetros adicionais na própria chamada da função setInterval. Para que fique mais claro, analise o exemplo abaixo.

function minuto(nome) {
trace(nome + ", um minuto se passou!");
};
setInterval(minuto, 60000, "Jonas");

   O terceiro parâmetro definido na função setInterval será passado para a função que será executada. Na verdade, será difícil encontrar uma oportunidade de usar este recurso, mas em alguns casos pode ser realmente útil.



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
0 comentário